Function at 0x4e5890
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed4
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x2c], 0
xor eax, eax
xor edx, edx
mov dword [ebp - 0x34], eax
xor eax, eax
mov esi, dword [ebp + 0x10]
lea ebx, [ebp - 0x12c]
add esi, dword [ebp + 0x18]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edx
lea ecx, [esi - 1]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x4e5921
cmp dword [ebp + 0xc], 0
jne 0x4e5921
cmp dword [ebp + 0x10], 0
jne 0x4e5921
cmp dword [ebp + 0x14], 0xfffffc19
jne 0x4e5921
cmp dword [ebp + 0x18], 0xfffffc19
jne 0x4e5921
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.004d4e30
add esp, 0x1c
jmp 0x4e6699
test dword [ebp + 0x1c], 0xe20f5a6f
je 0x4e5934
mov eax, 0xfffffffd
jmp 0x4e6699
cmp dword [ebp - 0x4c], 0
je 0x4e594c
cmp dword [ebp + 0x10], 0
je 0x4e594c
cmp dword [ebp + 0x20], 0
jne 0x4e5956
cmp dword [ebp + 0x24], 0
jle 0x4e5956
mov eax, 0xfffffffe
jmp 0x4e6699
cmp dword [ebp + 0x24], 0
jge 0x4e5966
mov eax, 0xfffffff1
jmp 0x4e6699
cmp dword [ebp + 0x14], 0
jge 0x4e5976
mov eax, 0xffffffe0
jmp 0x4e6699
cmp dword [ebp + 0x18], 0
jl 0x4e5984
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jle 0x4e598e
mov eax, 0xffffffe8
jmp 0x4e6699
mov edx, dword [ebp - 0x4c]
cmp dword [edx], 0x50435245
je 0x4e59b8
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 0x45524350
jne 0x4e59ae
mov eax, 0xffffffe3
jmp 0x4e6699
mov eax, 0xfffffffc
jmp 0x4e6699
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 1
jne 0x4e59cb
mov eax, 0xffffffe4
jmp 0x4e6699
mov edx, dword [ebp - 0x4c]
test byte [edx + 9], 8
setne cl
and ecx, 1
mov dword [ebx + 0x4c], ecx
mov dword [ebp - 0x20], ecx
test byte [ebp + 0x1f], 8
je 0x4e59eb
mov eax, 2
jmp 0x4e59fa
test byte [ebp + 0x1d], 0x80
je 0x4e59f8
mov eax, 1
jmp 0x4e59fa
xor eax, eax
mov dword [ebx + 0x88], eax
cmp dword [ebp - 0x20], 0
je 0x4e5a9c
test byte [ebp + 0x1d], 0x20
jne 0x4e5a9c
lea edx, [ebp - 0x50]
push edx
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call fcn.004e6b94
add esp, 0xc
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x4e5a6b
cmp dword [ebp + 0x24], 2
jl 0x4e5a48
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x50]
mov dword [edx], ecx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x54]
mov dword [eax + 4], edx
cmp dword [ebp - 0x54], 5
jg 0x4e5a61
cmp dword [ebx + 0x88], 1
jle 0x4e5a61
mov eax, 0xffffffe7
jmp 0x4e6699
mov eax, 0xfffffff6
jmp 0x4e6699
cmp dword [ebp + 0x18], 0
jle 0x4e5a9c
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jge 0x4e5a9c
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
xor edx, edx
mov dl, byte [ecx + eax]
and edx, 0xc0
cmp edx, 0x80
jne 0x4e5a9c
mov eax, 0xfffffff5
jmp 0x4e6699
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x22]
add ecx, dword [ebp - 0x4c]
mov dword [ebx + 0x30], ecx
mov eax, dword [ebp - 0x4c]
movzx edx, word [eax + 0x26]
mov dword [ebx + 0x20], edx
xor edx, edx
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x24]
mov dword [ebx + 0x24], eax
mov dword [ebp - 0x48], edx
mov dword [ebx + 4], 0x989680
mov dword [ebx + 8], 0x989680
xor ecx, ecx
mov dword [ebx + 0xa8], ecx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x30]
mov dword [ebp - 0x30], edx
cmp dword [ebp + 0xc], 0
je 0x4e5b3d
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [ebp - 0x58], eax
test byte [ebp - 0x58], 1
je 0x4e5afe
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x48], ecx
test byte [ebp - 0x58], 2
je 0x4e5b0d
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
mov dword [ebx + 4], edx
test byte [ebp - 0x58], 0x10
je 0x4e5b1c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x14]
mov dword [ebx + 8], eax
test byte [ebp - 0x58], 4
je 0x4e5b2e
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
mov dword [ebx + 0xa8], ecx
test byte [ebp - 0x58], 8
je 0x4e5b3d
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 0x20
je 0x4e5b5a
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x10]
cmp edx, dword [ebx + 4]
jae 0x4e5b5a
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 0x40
je 0x4e5b77
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x14]
cmp eax, dword [ebx + 8]
jae 0x4e5b77
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x14]
mov dword [ebx + 8], ecx
cmp dword [ebp - 0x30], 0
jne 0x4e5b84
mov dword [ebp - 0x30], 0x5b8998
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 8]
or edx, dword [ebp + 0x1c]
test dl, 0x10
setne cl
and ecx, 1
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xd], 1
setne dl
and edx, 1
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xa], 4
setne al
and eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x26]
movzx edx, word [eax + 0x24]
imul ecx, edx
mov eax, dword [ebp - 0x4c]
movzx edx, word [eax + 0x22]
add edx, dword [ebp - 0x4c]
add ecx, edx
mov dword [ebx + 0x70], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebx + 0x74], ecx
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x94], eax
mov edx, dword [ebx + 0x74]
add edx, dword [ebp + 0x14]
mov dword [ebx + 0x78], edx
mov ecx, dword [ebx + 0x78]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 8], 0x20
setne dl
and edx, 1
mov dword [ebx + 0x58], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xb], 0x20
setne al
and eax, 1
mov dword [ebx + 0x54], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xb], 2
setne cl
and ecx, 1
xor eax, eax
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x2c], eax
test byte [ebp + 0x1c], 0x80
setne dl
and edx, 1
mov dword [ebx + 0x44], edx
test byte [ebp + 0x1d], 1
setne cl
and ecx, 1
mov dword [ebx + 0x48], ecx
test byte [ebp + 0x1d], 4
setne al
and eax, 1
mov dword [ebx + 0x5c], eax
test byte [ebp + 0x1f], 0x10
setne dl
and edx, 1
xor ecx, ecx
mov dword [ebx + 0x60], edx
xor eax, eax
mov dword [ebx + 0x64], ecx
mov dword [ebx + 0xb0], eax
mov dword [ebx + 0xac], eax
xor edx, edx
mov dword [ebx + 0xa4], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 0x10
setne al
and eax, 1
mov dword [ebx + 0x6c], eax
mov edx, dword [ebp - 0x30]
mov dword [ebx + 0x38], edx
mov ecx, dword [ebp - 0x30]
add ecx, 0x100
mov dword [ebx + 0x3c], ecx
mov eax, dword [ebp - 0x30]
add eax, 0x340
mov dword [ebx + 0x40], eax
mov edx, dword [ebp + 0x1c]
and edx, 0x1800000
sub edx, 1
jb 0x4e5cc8
sub edx, 0x7fffff
je 0x4e5ced
sub edx, 0x800000
je 0x4e5cf6
jmp 0x4e5cfd
mov ecx, dword [ebp - 0x4c]
test dword [ecx + 8], 0x1800000
je 0x4e5ce6
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xa], 0x80
setne dl
and edx, 1
mov dword [ebx + 0x68], edx
jmp 0x4e5d07
xor ecx, ecx
mov dword [ebx + 0x68], ecx
jmp 0x4e5d07
mov dword [ebx + 0x68], 1
jmp 0x4e5d07
xor eax, eax
mov dword [ebx + 0x68], eax
jmp 0x4e5d07
mov eax, 0xffffffe9
jmp 0x4e6699
test byte [ebp + 0x1e], 0x70
jne 0x4e5d15
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 8]
jmp 0x4e5d18
mov ecx, dword [ebp + 0x1c]
and ecx, 0x700000
cmp ecx, 0x300000
jg 0x4e5d3f
je 0x4e5d6c
sub ecx, 1
jb 0x4e5d51
sub ecx, 0xfffff
je 0x4e5d5a
sub ecx, 0x100000
je 0x4e5d63
jmp 0x4e5d87
sub ecx, 0x400000
je 0x4e5d75
sub ecx, 0x100000
je 0x4e5d7e
jmp 0x4e5d87
mov dword [ebp - 0xc], 0xa
jmp 0x4e5d91
mov dword [ebp - 0xc], 0xd
jmp 0x4e5d91
mov dword [ebp - 0xc], 0xa
jmp 0x4e5d91
mov dword [ebp - 0xc], 0xd0a
jmp 0x4e5d91
mov dword [ebp - 0xc], 0xffffffff
jmp 0x4e5d91
mov dword [ebp - 0xc], 0xfffffffe
jmp 0x4e5d91
mov eax, 0xffffffe9
jmp 0x4e6699
cmp dword [ebp - 0xc], 0xfffffffe
jne 0x4e5da0
mov dword [ebx + 0x18], 2
jmp 0x4e5de7
cmp dword [ebp - 0xc], 0
jge 0x4e5daf
mov dword [ebx + 0x18], 1
jmp 0x4e5de7
xor edx, edx
mov dword [ebx + 0x18], edx
cmp dword [ebp - 0xc], 0xff
jle 0x4e5dda
mov dword [ebx + 0x1c], 2
mov eax, dword [ebp - 0xc]
sar eax, 8
and al, 0xff
mov byte [ebx + 0x34], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [ebx + 0x35], dl
jmp 0x4e5de7
mov dword [ebx + 0x1c], 1
mov cl, byte [ebp - 0xc]
mov byte [ebx + 0x34], cl
cmp dword [ebx + 0x88], 0
je 0x4e5e03
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xd], 2
je 0x4e5e03
mov eax, 0xfffffff3
jmp 0x4e6699
mov eax, dword [ebp + 0x24]
mov ecx, 3
cdq
idiv ecx
mov eax, dword [ebp + 0x24]
sub eax, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x4c]
cmp word [eax + 0x20], 0
jbe 0x4e5e80
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x20]
cmp eax, ecx
jg 0x4e5e80
mov eax, dword [ebp - 0x4c]
movzx eax, word [eax + 0x20]
lea edx, [eax + eax*2]
add edx, 3
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
shl ecx, 2
push ecx
call dword [0x5ba2f4]
pop ecx
mov dword [ebx + 0xc], eax
cmp dword [ebx + 0xc], 0
jne 0x4e5e77
mov eax, 0xfffffffa
jmp 0x4e6699
mov dword [ebp - 0x10], 1
jmp 0x4e5e86
mov edx, dword [ebp + 0x20]
mov dword [ebx + 0xc], edx
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [ebx + 0x90], eax
cmp dword [ebx + 0xc], 0
je 0x4e5f01
mov edx, dword [ebp - 4]
shl edx, 2
add edx, dword [ebx + 0xc]
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x1e]
shl eax, 2
mov edx, dword [ebp - 0x5c]
sub edx, eax
mov dword [ebp - 0x60], edx
mov ecx, dword [ebx + 0xc]
add ecx, 8
cmp ecx, dword [ebp - 0x60]
jbe 0x4e5ee7
mov eax, dword [ebx + 0xc]
add eax, 8
mov dword [ebp - 0x60], eax
jmp 0x4e5ee7
mov edx, dword [ebp - 0x5c]
mov dword [edx], 0xffffffff
sub dword [ebp - 0x5c], 4
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebp - 0x60]
jae 0x4e5ede
mov eax, dword [ebx + 0xc]
or edx, 0xffffffff
mov dword [eax + 4], edx
mov eax, dword [ebx + 0xc]
mov dword [eax], edx
cmp dword [ebp - 0x14], 0
jne 0x4e5f5a
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xc], 0x10
je 0x4e5f3c
mov dword [ebp - 0x24], 1
mov eax, dword [ebp - 0x4c]
mov dl, byte [eax + 0x18]
mov byte [ebp - 0x2a], dl
mov byte [ebp - 0x29], dl
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xc], 0x20
je 0x4e5f5a
xor ecx, ecx
mov cl, byte [ebp - 0x29]
mov eax, dword [ebx + 0x3c]
mov dl, byte [eax + ecx]
mov byte [ebp - 0x2a], dl
jmp 0x4e5f5a
cmp dword [ebp - 0x18], 0
jne 0x4e5f5a
cmp dword [ebp - 0x48], 0
je 0x4e5f5a
mov ecx, dword [ebp - 0x48]
test byte [ecx + 4], 1
je 0x4e5f5a
mov eax, dword [ebp - 0x48]
add eax, 8
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 0x40
je 0x4e5f8d
mov dword [ebp - 0x28], 1
mov ecx, dword [ebp - 0x4c]
mov al, byte [ecx + 0x1a]
mov byte [ebp - 0x2c], al
mov byte [ebp - 0x2b], al
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 0x80
je 0x4e5f8d
xor ecx, ecx
mov cl, byte [ebp - 0x2b]
mov eax, dword [ebx + 0x3c]
mov dl, byte [eax + ecx]
mov byte [ebp - 0x2c], dl
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x1c], 0
je 0x4e609a
cmp dword [ebp - 0x20], 0
mov edi, esi
je 0x4e6033
jmp 0x4e5fc4
inc edi
jmp 0x4e5faf
inc edi
cmp edi, dword [ebp - 0x38]
jae 0x4e5fc4
xor eax, eax
mov al, byte [edi]
and eax, 0xc0
cmp eax, 0x80
je 0x4e5fae
cmp edi, dword [ebx + 0x78]
jae 0x4e6097
cmp dword [ebx + 0x18], 0
je 0x4e6000
cmp edi, dword [ebx + 0x78]
jae 0x4e5ff5
mov edx, dword [ebp - 0x20]
lea ecx, [ebx + 0x1c]
push edx
push ecx
mov eax, dword [ebx + 0x78]
push eax
mov edx, dword [ebx + 0x18]
push edx
push edi
call fcn.004e66e4
add esp, 0x14
test eax, eax
jne 0x4e5ff9
xor ecx, ecx
jmp 0x4e6028
mov ecx, 1
jmp 0x4e6028
mov eax, dword [ebx + 0x78]
sub eax, dword [ebx + 0x1c]
cmp edi, eax
ja 0x4e601f
mov dl, byte [edi]
cmp dl, byte [ebx + 0x34]
jne 0x4e601f
cmp dword [ebx + 0x1c], 1
je 0x4e6023
mov cl, byte [edi + 1]
cmp cl, byte [ebx + 0x35]
je 0x4e6023
xor ecx, ecx
jmp 0x4e6028
mov ecx, 1
test ecx, ecx
je 0x4e5fab
jmp 0x4e6097
inc edi
cmp edi, dword [ebx + 0x78]
jae 0x4e6097
cmp dword [ebx + 0x18], 0
je 0x4e606b
cmp edi, dword [ebx + 0x78]
jae 0x4e6060
mov eax, dword [ebp - 0x20]
lea edx, [ebx + 0x1c]
push eax
push edx
mov eax, dword [ebx + 0x78]
push eax
mov edx, dword [ebx + 0x18]
push edx
push edi
call fcn.004e66e4
add esp, 0x14
test eax, eax
jne 0x4e6064
xor ecx, ecx
jmp 0x4e6093
mov ecx, 1
jmp 0x4e6093
mov eax, dword [ebx + 0x78]
sub eax, dword [ebx + 0x1c]
cmp edi, eax
ja 0x4e608a
mov dl, byte [edi]
cmp dl, byte [ebx + 0x34]
jne 0x4e608a
cmp dword [ebx + 0x1c], 1
je 0x4e608e
mov cl, byte [edi + 1]
cmp cl, byte [ebx + 0x35]
je 0x4e608e
xor ecx, ecx
jmp 0x4e6093
mov ecx, 1
test ecx, ecx
je 0x4e6032
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 8]
or edx, dword [ebp + 0x1c]
test edx, 0x4000000
jne 0x4e6284
cmp dword [ebp - 0x24], 0
je 0x4e60f4
mov al, byte [ebp - 0x29]
cmp al, byte [ebp - 0x2a]
je 0x4e60df
jmp 0x4e60c0
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x4e6284
mov al, byte [esi]
cmp al, byte [ebp - 0x29]
je 0x4e6284
cmp al, byte [ebp - 0x2a]
jne 0x4e60bf
jmp 0x4e6284
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x4e6284
mov dl, byte [esi]
cmp dl, byte [ebp - 0x29]
jne 0x4e60de
jmp 0x4e6284
cmp dword [ebp - 0x18], 0
je 0x4e6235
mov ecx, dword [ebx + 0x74]
add ecx, dword [ebp + 0x18]
cmp esi, ecx
jbe 0x4e6284
cmp dword [ebp - 0x20], 0
je 0x4e61a9
jmp 0x4e6131
inc esi
jmp 0x4e611c
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x4e6131
xor eax, eax
mov al, byte [esi]
and eax, 0xc0
cmp eax, 0x80
je 0x4e611b
cmp esi, dword [ebp - 0x38]
jae 0x4e6216
cmp dword [ebx + 0x18], 0
je 0x4e616c
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x4e6161
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.004e68c4
add esp, 0x14
test eax, eax
jne 0x4e6165
xor eax, eax
jmp 0x4e619e
mov eax, 1
jmp 0x4e619e
mov edx, dword [ebx + 0x74]
add edx, dword [ebx + 0x1c]
cmp esi, edx
jb 0x4e6195
mov ecx, esi
sub ecx, dword [ebx + 0x1c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x34]
jne 0x4e6195
cmp dword [ebx + 0x1c], 1
je 0x4e6199
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x35]
je 0x4e6199
xor eax, eax
jmp 0x4e619e
mov eax, 1
test eax, eax
je 0x4e6118
jmp 0x4e6216
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x4e6216
cmp dword [ebx + 0x18], 0
je 0x4e61e0
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x4e61d5
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.004e68c4
add esp, 0x14
test eax, eax
jne 0x4e61d9
xor eax, eax
jmp 0x4e6212
mov eax, 1
jmp 0x4e6212
mov edx, dword [ebx + 0x74]
add edx, dword [ebx + 0x1c]
cmp esi, edx
jb 0x4e6209
mov ecx, esi
sub ecx, dword [ebx + 0x1c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x34]
jne 0x4e6209
cmp dword [ebx + 0x1c], 1
je 0x4e620d
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x35]
je 0x4e620d
xor eax, eax
jmp 0x4e6212
mov eax, 1
test eax, eax
je 0x4e61a8
cmp byte [esi - 1], 0xd
jne 0x4e6284
cmp dword [ebx + 0x18], 1
je 0x4e6228
cmp dword [ebx + 0x18], 2
jne 0x4e6284
cmp esi, dword [ebp - 0x38]
jae 0x4e6284
cmp byte [esi], 0xa
jne 0x4e6284
inc esi
jmp 0x4e6284
cmp dword [ebp - 0x34], 0
je 0x4e6284
cmp esi, dword [ebp - 0x38]
jae 0x4e6284
xor eax, eax
mov al, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
shr eax, 3
mov ecx, dword [ebp - 0x34]
movzx eax, byte [ecx + eax]
and edx, eax
jne 0x4e6284
inc esi
cmp dword [ebp - 0x20], 0
je 0x4e627f
jmp 0x4e6268
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x4e627f
xor edx, edx
mov dl, byte [esi]
and edx, 0xc0
cmp edx, 0x80
je 0x4e6267
cmp esi, dword [ebp - 0x38]
jb 0x4e6240
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 8]
or ecx, dword [ebp + 0x1c]
test ecx, 0x4000000
jne 0x4e6349
cmp dword [ebx + 0x88], 0
jne 0x4e6349
cmp dword [ebp - 0x48], 0
je 0x4e62cf
mov eax, dword [ebp - 0x48]
test byte [eax + 4], 2
je 0x4e62cf
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x38]
sub edx, esi
cmp edx, dword [ecx + 0x28]
jae 0x4e62cf
xor edi, edi
jmp 0x4e64da
cmp dword [ebp - 0x28], 0
je 0x4e6349
mov eax, dword [ebp - 0x38]
sub eax, esi
cmp eax, 0x3e8
jge 0x4e6349
cmp dword [ebp - 0x24], 0
je 0x4e62ee
mov eax, 1
jmp 0x4e62f0
xor eax, eax
add eax, esi
cmp eax, dword [ebp - 0x44]
jbe 0x4e6349
mov dl, byte [ebp - 0x2b]
cmp dl, byte [ebp - 0x2c]
je 0x4e6325
cmp eax, dword [ebp - 0x38]
jae 0x4e633a
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
inc eax
mov cl, byte [ebp - 0x2b]
cmp edx, ecx
je 0x4e631b
xor ecx, ecx
mov cl, byte [ebp - 0x2c]
cmp edx, ecx
jne 0x4e631e
dec eax
jmp 0x4e633a
cmp eax, dword [ebp - 0x38]
jb 0x4e6304
jmp 0x4e633a
cmp eax, dword [ebp - 0x38]
jae 0x4e633a
mov dl, byte [eax]
inc eax
cmp dl, byte [ebp - 0x2b]
jne 0x4e6335
dec eax
jmp 0x4e633a
cmp eax, dword [ebp - 0x38]
jb 0x4e632a
cmp eax, dword [ebp - 0x38]
jb 0x4e6346
xor edi, edi
jmp 0x4e64da
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x7c], esi
mov dword [ebx + 0x84], esi
xor eax, eax
mov dword [ebx], eax
xor edx, edx
mov dword [ebx + 0x98], edx
xor ecx, ecx
mov dword [ebx + 0x8c], ecx
xor eax, eax
mov dword [ebx + 0x28], eax
push 0
push 0
push ebx
push 2
push esi
mov edx, dword [ebx + 0x70]
push edx
push esi
call fcn.004d4e30
add esp, 0x1c
mov edi, eax
cmp dword [ebx + 0x64], 0
je 0x4e639a
cmp dword [ebp - 0x3c], 0
jne 0x4e639a
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
mov edx, edi
cmp edx, 0xfffffc1f
jg 0x4e63b9
je 0x4e63ce
sub edx, 0xfffffc1c
je 0x4e641b
dec edx
je 0x4e63e6
dec edx
je 0x4e63d9
jmp 0x4e64da
sub edx, 0xfffffc20
je 0x4e63e6
sub edx, 0x3e0
je 0x4e63e6
jmp 0x4e64da
mov dword [ebp - 0x68], esi
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x2c], ecx
jmp 0x4e6422
cmp esi, dword [ebx + 0x7c]
jae 0x4e63e6
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x68], eax
jmp 0x4e6422
xor edx, edx
lea ecx, [esi + 1]
mov dword [ebx + 0x2c], edx
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x20], 0
je 0x4e6422
jmp 0x4e63fc
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x38]
jae 0x4e6422
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
and ecx, 0xc0
cmp ecx, 0x80
je 0x4e63f9
jmp 0x4e6422
xor edi, edi
jmp 0x4e64da
xor edi, edi
cmp dword [ebp - 0x1c], 0
je 0x4e6489
cmp dword [ebx + 0x18], 0
je 0x4e645d
cmp esi, dword [ebx + 0x78]
jae 0x4e6452
mov eax, dword [ebp - 0x20]
lea edx, [ebx + 0x1c]
push eax
push edx
mov ecx, dword [ebx + 0x78]
push ecx
mov eax, dword [ebx + 0x18]
push eax
push esi
call fcn.004e66e4
add esp, 0x14
test eax, eax
jne 0x4e6456
xor edx, edx
jmp 0x4e6485
mov edx, 1
jmp 0x4e6485
mov ecx, dword [ebx + 0x78]
sub ecx, dword [ebx + 0x1c]
cmp esi, ecx
ja 0x4e647c
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x4e647c
cmp dword [ebx + 0x1c], 1
je 0x4e6480
mov dl, byte [esi + 1]
cmp dl, byte [ebx + 0x35]
je 0x4e6480
xor edx, edx
jmp 0x4e6485
mov edx, 1
test edx, edx
jne 0x4e64da
cmp dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x68]
jne 0x4e64da
cmp esi, dword [ebp - 0x38]
ja 0x4e64da
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0x18]
cmp esi, eax
jbe 0x4e64cd
cmp byte [esi - 1], 0xd
jne 0x4e64cd
cmp esi, dword [ebp - 0x38]
jae 0x4e64cd
cmp byte [esi], 0xa
jne 0x4e64cd
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 8
jne 0x4e64cd
cmp dword [ebx + 0x18], 1
je 0x4e64cc
cmp dword [ebx + 0x18], 2
je 0x4e64cc
cmp dword [ebx + 0x1c], 2
jne 0x4e64cd
inc esi
xor ecx, ecx
mov dword [ebx + 0xac], ecx
jmp 0x4e5f8d
cmp edi, 1
je 0x4e64eb
cmp edi, 0xfffffc19
jne 0x4e6616
cmp dword [ebp - 0x10], 0
je 0x4e6537
cmp dword [ebp - 8], 4
jl 0x4e6517
mov eax, dword [ebp - 8]
add eax, 0xfffffffe
shl eax, 2
push eax
mov edx, dword [ebx + 0xc]
add edx, 8
push edx
mov ecx, dword [ebp + 0x20]
add ecx, 8
push ecx
call fcn.004f30c8
add esp, 0xc
mov eax, dword [ebx + 0x8c]
cmp eax, dword [ebp - 8]
jle 0x4e652c
or dword [ebx + 0x90], 0x10000
mov edx, dword [ebx + 0xc]
push edx
call dword [0x5ba2f8]
pop ecx
test byte [ebx + 0x92], 1
je 0x4e654f
mov ecx, dword [ebx + 0x8c]
cmp ecx, dword [ebp - 8]
jl 0x4e654f
xor edi, edi
jmp 0x4e655c
mov edi, dword [ebx + 0x8c]
sar edi, 1
jns 0x4e655c
adc edi, 0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebx + 0x8c]
sar ecx, 1
movzx edx, word [eax + 0x1e]
jns 0x4e6570
adc ecx, 0
cmp edx, ecx
jl 0x4e65cf
cmp dword [ebp + 0x20], 0
je 0x4e65cf
mov eax, dword [ebp - 0x4c]
movzx edx, word [eax + 0x1e]
add edx, edx
add edx, 2
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x74]
cmp ecx, dword [ebp + 0x24]
jle 0x4e6597
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x74], eax
mov edx, dword [ebx + 0x8c]
shl edx, 2
add edx, dword [ebp + 0x20]
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x74]
shl ecx, 2
add ecx, dword [ebp + 0x20]
mov dword [ebp - 0x70], ecx
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x70]
jae 0x4e65cf
mov edx, dword [ebp - 0x6c]
mov dword [edx], 0xffffffff
add dword [ebp - 0x6c], 4
mov ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x70]
jb 0x4e65ba
cmp dword [ebp + 0x24], 2
jge 0x4e65d9
xor edi, edi
jmp 0x4e65f3
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp + 0x20]
sub eax, dword [ebx + 0x74]
mov dword [edx], eax
mov ecx, dword [ebx + 0x80]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebx + 0x74]
mov dword [eax + 4], ecx
cmp dword [ebp + 0xc], 0
je 0x4e660f
mov edx, dword [ebp + 0xc]
test byte [edx], 0x20
je 0x4e660f
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
mov edx, dword [ebx + 0xac]
mov dword [eax], edx
mov eax, edi
jmp 0x4e6699
cmp dword [ebp - 0x10], 0
je 0x4e6627
mov edx, dword [ebx + 0xc]
push edx
call dword [0x5ba2f8]
pop ecx
test edi, edi
je 0x4e6634
cmp edi, 0xfffffff4
je 0x4e6634
mov eax, edi
jmp 0x4e6699
cmp dword [ebp - 0x40], 0
je 0x4e6678
xor edx, edx
mov dword [ebx + 0xac], edx
cmp dword [ebp + 0x24], 1
jle 0x4e6671
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x20]
sub edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
cmp dword [ebp + 0x24], 2
jle 0x4e6671
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp + 0x20]
sub eax, dword [ebp + 0x10]
mov dword [edx + 8], eax
mov edi, 0xfffffff4
jmp 0x4e667b
or edi, 0xffffffff
cmp dword [ebp + 0xc], 0
je 0x4e6697
mov eax, dword [ebp + 0xc]
test byte [eax], 0x20
je 0x4e6697
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret