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

Disassembly:
sub esp, 0xc4
mov eax, dword [0x725fec]
xor eax, esp
mov dword [esp + 0xbc], eax
mov dword [esp + 0x14], edx
mov edx, ecx
push ebx
push ebp
push esi
mov eax, dword [edx]
xor ebx, ebx
mov esi, dword [edx + 0xc]
xor ecx, ecx
push edi
mov edi, dword [esp + 0xd8]
mov eax, dword [eax]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
mov ebp, dword [eax]
xor eax, eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], esi
cmp byte [ebp + 0x41], al
je 0x4e565d
lea eax, [ebx + 7]
jmp 0x4e5d35
mov eax, dword [esi + 0x24]
mov dword [esp + 0x3c], eax
test al, 0x20
je 0x4e566f
mov edx, 0x18
jmp 0x4e5684
mov eax, dword [esp + 0x24]
mov edx, 0x1bf
test byte [eax + 0x24], 8
mov eax, 0x3f
cmovne edx, eax
movzx eax, word [esi + 0x2a]
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x54], eax
movzx eax, word [esi + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x4c], eax
movzx eax, word [esi + 0x16]
mov ebp, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x64], ebp
movzx ebp, cx
mov ecx, edx
and ecx, 0xffffffc3
and al, 4
mov eax, dword [esp + 0x24]
cmove ecx, edx
push edi
push ecx
mov ecx, dword [esp + 0x38]
push ebp
push dword [eax + 0x30]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x78]
call fcn.004e3c20
mov ebp, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [edi + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x60], ecx
cmp cx, 0xa
jg 0x4e5704
mov dword [esp + 0x20], ebx
jmp 0x4e571b
cwde
cdq
push edx
push eax
call fcn.00484cc0
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x2c], eax
test ebp, ebp
je 0x4e5c39
movzx edx, word [ebp + 0x12]
mov eax, 0x100
mov ecx, edx
mov dword [esp + 0x44], ecx
cmp cx, ax
jne 0x4e5778
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
movzx ecx, bx
mov ebx, dword [esp + 0x14]
movsx ecx, word [eax + ecx*2]
test ecx, ecx
js 0x4e576f
mov eax, dword [edi + 0xc]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0x14]
test al, al
jne 0x4e5c20
jmp 0x4e5778
cmp ecx, 0xffffffff
je 0x4e5c20
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
and ecx, dword [esi + 8]
and eax, dword [esi + 0xc]
or ecx, eax
jne 0x4e5c20
mov eax, 0x100
test word [ebp + 0x14], ax
je 0x4e57a0
cmp edx, 0x10
je 0x4e5c20
mov eax, dword [esp + 0x3c]
mov edx, esi
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x1c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x50]
mov word [esi + 0x28], ax
movzx eax, ax
inc eax
push eax
call fcn.004e4f20
add esp, 4
test eax, eax
jne 0x4e5c39
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], ebp
mov ax, word [esi + 0x28]
inc ax
movzx ecx, ax
mov dword [esp + 0x58], ecx
movzx ecx, ax
mov word [esi + 0x28], ax
mov edx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
mov eax, dword [esi + 0xc]
or edx, dword [esp + 0x4c]
not eax
or edi, dword [esp + 0x48]
and edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 8]
not ecx
mov dword [esi + 4], edx
and edi, ecx
mov dword [esi], edi
test al, 1
je 0x4e586e
mov eax, dword [ebp]
mov ebx, dword [esi + 0x24]
or ebx, 4
mov dword [esi + 0x24], ebx
test dword [eax + 4], 0x800
je 0x4e5843
mov ecx, dword [esp + 0x18]
mov eax, 0x2e
movzx eax, ax
jmp 0x4e598c
mov ecx, dword [eax + 0x14]
xor eax, eax
test ecx, ecx
je 0x4e5862
mov ecx, dword [ecx]
test ecx, ecx
je 0x4e5862
mov eax, ecx
cdq
push edx
push eax
call fcn.00484cc0
add esp, 8
movzx eax, ax
mov ecx, dword [esp + 0x18]
movzx eax, ax
jmp 0x4e598c
test al, 0x82
je 0x4e58ec
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
movzx ecx, dx
mov edx, dword [esi + 0x24]
mov eax, dword [edi + 4]
movsx ecx, word [eax + ecx*2]
mov eax, edx
or eax, 1
mov dword [esi + 0x24], eax
cmp ecx, 0xffffffff
je 0x4e58ba
mov ebx, eax
test ecx, ecx
jle 0x4e58e3
cmp word [esp + 0x2c], 0
jne 0x4e58e3
movzx eax, word [edi + 0x32]
mov esi, dword [esp + 0x1c]
dec eax
movzx edi, si
mov esi, dword [esp + 0x40]
cmp edi, eax
mov edi, dword [esp + 0x10]
jne 0x4e58e3
test ecx, ecx
js 0x4e58d8
test byte [edi + 0x38], 8
jne 0x4e58d8
mov ecx, dword [esp + 0x18]
mov ebx, edx
or ebx, 0x10001
mov dword [esi + 0x24], ebx
jmp 0x4e598a
mov ebx, edx
or ebx, 0x1001
mov dword [esi + 0x24], ebx
mov ecx, dword [esp + 0x18]
jmp 0x4e598a
mov ebx, dword [esi + 0x24]
test eax, 0x100
je 0x4e5905
mov ecx, dword [esp + 0x18]
or ebx, 8
mov dword [esi + 0x24], ebx
jmp 0x4e598a
test al, 0x24
je 0x4e5965
xor eax, eax
mov dword [esp + 0x18], ebp
or ebx, 0x22
mov dword [esp + 0x28], eax
mov eax, 0x100
mov dword [esi + 0x24], ebx
test word [ebp + 0x14], ax
je 0x4e595f
mov eax, dword [esp + 0x58]
lea ebx, [ebp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, esi
movzx eax, ax
inc eax
mov dword [esp + 0x28], ebx
push eax
call fcn.004e4f20
add esp, 4
test eax, eax
jne 0x4e5c35
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], ebx
inc word [esi + 0x28]
or dword [esi + 0x24], 0x10
mov ebx, dword [esi + 0x24]
mov ecx, dword [esp + 0x18]
jmp 0x4e598a
or ebx, 0x12
mov dword [esp + 0x28], ebp
mov dword [esi + 0x24], ebx
test bl, 0x20
je 0x4e5984
mov eax, dword [esp + 0x5c]
movzx ecx, ax
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4 - 8]
jmp 0x4e5986
xor ecx, ecx
mov dword [esp + 0x18], ecx
xor eax, eax
mov dword [esp + 0x14], eax
movzx edx, ax
test bl, 2
je 0x4e5a2d
movzx eax, word [esi + 0x16]
movsx edi, ax
test ecx, ecx
je 0x4e59b7
movzx ecx, word [ecx + 0x10]
test cx, cx
jg 0x4e59b4
add eax, ecx
jmp 0x4e59b7
sub eax, 0x14
mov ebp, dword [esp + 0x28]
movzx ecx, ax
test ebp, ebp
je 0x4e59d5
movzx ecx, word [ebp + 0x10]
test cx, cx
jg 0x4e59cf
add eax, ecx
jmp 0x4e59d2
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x18]
movzx edx, cx
test eax, eax
je 0x4e59f8
cmp word [eax + 0x10], 0
jle 0x4e59f8
test ebp, ebp
je 0x4e59f8
cmp word [ebp + 0x10], 0
jle 0x4e59f8
lea eax, [ecx - 0x14]
movzx edx, ax
xor eax, eax
cmp dword [esp + 0x18], eax
setne al
sub edi, eax
xor eax, eax
test ebp, ebp
setne al
sub edi, eax
cmp dx, 0xa
mov eax, 0xa
cmovl edx, eax
movzx eax, di
movsx ecx, dx
cmp ecx, edi
movzx edx, cx
cmovge edx, eax
movzx eax, dx
mov ebp, eax
jmp 0x4e5a91
inc word [esi + 0x18]
movzx ecx, word [ebp + 0x10]
movzx edi, word [esi + 0x18]
mov ebp, dword [esp + 0x10]
test cx, cx
jg 0x4e5a67
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
movzx ebp, si
mov esi, dword [esp + 0x40]
cmp word [eax + ebp*2], 0
mov ebp, dword [esp + 0x10]
jl 0x4e5a67
sub ecx, edx
add word [esi + 0x16], cx
movzx ebp, word [esi + 0x16]
jmp 0x4e5a95
mov eax, dword [ebp + 8]
mov cx, word [esi + 0x16]
sub cx, word [eax + edi*2 - 2]
add cx, word [eax + edi*2]
test dword [esp + 0x44], 0x100
movzx eax, cx
mov word [esi + 0x16], cx
movzx ebp, cx
je 0x4e5a95
add eax, 0xa
movzx ebp, ax
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x10]
movsx eax, word [eax + 0x30]
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
movsx ecx, word [eax + 0x28]
mov eax, edx
cdq
idiv ecx
lea ecx, [eax + ebp]
lea eax, [ecx + 1]
movsx ecx, cx
movzx edi, ax
inc ecx
mov eax, dword [esp + 0x20]
movsx edx, ax
cmp ax, di
jl 0x4e5af8
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4e5ada
mov eax, dword [esp + 0x20]
jmp 0x4e5b1b
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4e5ae8
mov eax, dword [esp + 0x20]
inc eax
jmp 0x4e5b1b
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, word [esp + 0x20]
jmp 0x4e5b1b
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4e5b03
mov ecx, edi
jmp 0x4e5b1e
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4e5b0f
lea eax, [edi + 1]
jmp 0x4e5b1b
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx ecx, ax
movzx eax, cx
test ebx, 0x140
jne 0x4e5b8c
lea eax, [ebp + 0x10]
movsx edi, bp
movzx ebx, ax
add edi, 0x10
movsx edx, cx
cmp cx, bx
jl 0x4e5b63
lea eax, [edi + 0x31]
cmp edx, eax
jle 0x4e5b49
movzx eax, cx
jmp 0x4e5b89
lea eax, [edi + 0x1f]
cmp edx, eax
jle 0x4e5b55
lea eax, [ecx + 1]
jmp 0x4e5b86
sub edx, edi
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, cx
jmp 0x4e5b86
lea eax, [edx + 0x31]
cmp edi, eax
jle 0x4e5b6e
mov eax, ebx
jmp 0x4e5b89
lea eax, [edx + 0x1f]
cmp edi, eax
jle 0x4e5b7a
lea eax, [ebx + 1]
jmp 0x4e5b86
sub edi, edx
movzx eax, byte [edi + str._n_n_t_t_b_b_a_a_a]
add ax, bx
movzx eax, ax
movzx eax, ax
mov edi, dword [esp + 0x14]
mov edx, esi
mov ebx, dword [esp + 0x30]
add eax, edi
add eax, dword [esp + 0x2c]
push dword [esp + 0x60]
mov word [esi + 0x14], ax
lea eax, [edi + ebp]
add eax, dword [esp + 0x30]
mov word [esi + 0x16], ax
mov ecx, dword [ebx + 4]
call fcn.004e54b0
add esp, 4
mov edx, esi
mov ecx, ebx
call fcn.004e5270
test byte [esi + 0x24], 2
mov ebx, eax
mov eax, dword [esp + 0x64]
movzx edx, ax
movzx ecx, bp
cmove edx, ecx
mov dword [esp + 0x14], ebx
mov word [esi + 0x16], dx
test byte [esi + 0x24], 0x10
jne 0x4e5c14
mov eax, dword [esp + 0x10]
mov cx, word [esi + 0x18]
cmp cx, word [eax + 0x34]
jae 0x4e5c10
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
add eax, edi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
push eax
push edi
call fcn.004e5600
add esp, 8
jmp 0x4e5c18
mov edi, eax
jmp 0x4e5c18
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov word [esi + 0x16], ax
lea ecx, [esp + 0x68]
call fcn.004e3960
mov ebp, eax
test ebx, ebx
je 0x4e5726
jmp 0x4e5c39
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esi], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x1c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x38]
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x1c]
mov word [esi + 0x2a], cx
mov word [esi + 0x28], dx
cmp ax, cx
jne 0x4e5d33
mov ebp, dword [esp + 0x10]
movzx edi, ax
movzx ecx, word [ebp + 0x32]
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4e5d33
test byte [ebp + 0x38], 0x40
jne 0x4e5d33
mov eax, dword [ebp + 8]
cmp word [eax + edi*2 + 2], 0x2a
jl 0x4e5d33
mov ecx, dword [esp + 0x34]
movzx eax, dx
mov edx, esi
inc eax
push eax
call fcn.004e4f20
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4e5d33
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
inc word [esi + 0x18]
inc word [esi + 0x2a]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], ebx
inc word [esi + 0x28]
or dword [esi + 0x24], 0x8000
mov eax, dword [ebp + 8]
movzx ecx, dx
mov edx, dword [esp + 0x24]
mov di, word [eax + edi*2]
sub di, word [eax + ecx*2 + 2]
mov ecx, dword [esp + 0x2c]
movzx eax, di
add ecx, 5
sub word [esi + 0x16], ax
add eax, ecx
mov ecx, dword [esp + 0x30]
push eax
push ebp
call fcn.004e5600
mov eax, dword [esp + 0x40]
add esp, 8
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x1c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x54]
mov word [esi + 0x2a], ax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov eax, ebx
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0063db0b
add esp, 0xc4
ret