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

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x9c
mov ebx, dword [eax]
mov eax, dword [eax + 0x98]
mov dword [esp + 0x34], edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x70], 0
mov edx, dword [eax]
mov dword [esp + 0x74], 1
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x18]
mov edi, eax
test eax, eax
je 0x59ddc9
movzx eax, byte [esi + 0xc]
mov byte [esi + 0x12], al
mov eax, esi
call fcn.0054aac1
add esp, 0x9c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi]
mov ebp, dword [esi + 0xd0]
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x40]
mov edx, ebp
add ecx, 1
call fcn.005466a1
mov edi, eax
test eax, eax
jne 0x59dda9
cmp byte [ebp], 0
jne 0x59e023
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], eax
test eax, eax
je 0x59e0b7
mov ebp, dword [esp + 0x34]
mov dword [esi + 0x48], 0
lea ecx, [esi + 0x48]
mov dword [esi + 0x4c], 0
mov edx, dword [esp + 0x84]
mov eax, ebp
mov dword [esp + 0x30], ebp
mov ebp, ecx
and eax, 1
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x80]
lea esi, [esi]
lea ecx, [esp + 0x70]
mov dword [esp], eax
mov eax, esi
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 8], ecx
call fcn.0055e7e1
test eax, eax
jne 0x59e059
mov ecx, dword [esi + 0x94]
mov eax, dword [esp + 0x6c]
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ecx
cmp eax, 0xffffffff
jne 0x59deb6
mov eax, dword [esi + 0x98]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
sub edx, dword [esp + 0x28]
sbb ecx, dword [esp + 0x2c]
add eax, 8
mov dword [esp], edx
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
call fcn.0085d5b1
mov dword [esp + 0x6c], eax
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
or eax, dword [esp + 0x34]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
je 0x59df81
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
xor eax, ecx
mov edx, ebx
or edx, eax
je 0x59dfc5
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x59df65
mov edx, dword [esp + 0x30]
test edx, edx
je 0x59defd
mov eax, esi
call fcn.00556df1
xor ebx, ebx
jmp 0x59df0d
add edi, 1
add ebx, 1
cmp dword [esp + 0x6c], ebx
jbe 0x59df61
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, ebp
mov eax, esi
mov dword [esp], 1
call fcn.0059d321
test eax, eax
je 0x59df01
mov dword [esp + 0x30], eax
cmp eax, 0x65
jne 0x59e3b5
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x30], 0
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
jmp 0x59de39
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
jmp 0x59de39
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, dword [esi + 0x50]
adc edx, dword [esi + 0x54]
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
xor ebx, ecx
xor eax, edx
mov edx, ebx
or edx, eax
je 0x59dfe4
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
xor eax, edx
mov edx, ecx
or edx, eax
jne 0x59df65
mov edx, dword [esp + 0x70]
mov eax, esi
call fcn.00544ff1
test eax, eax
jne 0x59e3dd
mov eax, dword [esp + 0x70]
mov dword [esi + 0x18], eax
jmp 0x59dee6
mov eax, dword [esi + 0x98]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
sub edx, dword [esp + 0x38]
sbb ecx, dword [esp + 0x3c]
add eax, 8
mov dword [esp], edx
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
call fcn.0085d5b1
mov dword [esp + 0x6c], eax
jmp 0x59dece
lea eax, [esp + 0x74]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebp
mov dword [esp], ebx
call dword [ebx + 0x20]
test eax, eax
je 0x59ddf1
movzx edx, byte [esi + 0xc]
mov edi, eax
mov byte [esi + 0x12], dl
jmp 0x59ddb0
test edi, edi
setne dl
and dl, byte [esp + 0x48]
mov byte [esp + 0x28], dl
cmp eax, 0x65
je 0x59e3d4
movzx edx, byte [esi + 0xc]
mov dword [esp + 0x30], edi
mov edi, eax
mov byte [esi + 0x12], dl
lea esi, [esi]
nop
cmp byte [esp + 0x28], 0
je 0x59ddb0
mov eax, dword [esi + 0xac]
mov dword [esp + 4], 0x98f708
mov dword [esp], 0x21b
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
call fcn.00561091
jmp 0x59ddb0
mov byte [esp + 0x28], 0
mov ecx, 0xffffffff
lea edx, [esp + 0x78]
mov eax, esi
call fcn.0055e311
mov edi, eax
movzx eax, byte [esi + 0xc]
mov byte [esi + 0x12], al
test edi, edi
jne 0x59e081
mov eax, dword [esi]
mov ebx, dword [esi + 0xd0]
mov ecx, dword [eax + 8]
lea ebp, [ebx + 4]
mov eax, dword [esi + 0x40]
mov edx, ebp
add ecx, 1
call fcn.005466a1
mov edi, eax
test eax, eax
jne 0x59e081
movzx eax, byte [esi + 0x10]
sub eax, 1
cmp al, 2
ja 0x59e39d
xor edx, edx
cmp byte [ebx + 4], 0
mov eax, esi
setne dl
xor ecx, ecx
call fcn.00556e21
mov edi, eax
test eax, eax
jne 0x59e081
cmp byte [ebx + 4], 0
je 0x59e081
mov edi, dword [esp + 0x74]
test edi, edi
je 0x59e081
mov dword [ebx], 0
mov edi, dword [esi]
mov eax, dword [edi + 4]
mov ebx, edi
mov dword [esp + 0x34], eax
add eax, eax
cdq
call fcn.00553df1
test eax, eax
je 0x59e3ef
mov dword [esp], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x4001
mov dword [esp + 0x34], eax
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
call dword [edi + 0x18]
mov dword [esp + 0x40], 0
mov edi, eax
test eax, eax
jne 0x59e366
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x34]
lea edx, [esp + 0x88]
mov dword [esp + 0x48], eax
mov eax, dword [edi]
mov dword [esp], edi
mov dword [esp + 4], edx
call dword [eax + 0x18]
mov edi, eax
test eax, eax
jne 0x59e366
mov ecx, dword [ebx + 8]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ecx
add ecx, 1
mov eax, ecx
mov dword [esp + 0x50], ecx
cdq
add eax, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
add eax, 6
adc edx, 0
call fcn.00553481
mov dword [esp + 0x40], eax
test eax, eax
je 0x59e459
mov edx, dword [esp + 0x34]
mov dword [eax], 0
lea ecx, [eax + 4]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x38], ecx
mov eax, dword [edx]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], edx
call dword [eax + 8]
mov edi, eax
test eax, eax
jne 0x59e366
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
mov byte [ecx + eax + 4], 0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x88]
mov byte [ecx + eax + 1], 0
mov eax, edi
cmp edi, dword [esp + 0x88]
sbb eax, dword [esp + 0x8c]
jge 0x59e411
mov eax, dword [esp + 0x48]
lea edx, [ecx + ebx + 2]
add eax, dword [esp + 0x34]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], edi
mov ebx, ecx
mov ebp, edx
mov edi, eax
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x4c]
jmp 0x59e33e
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x59e30e
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x4001
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call dword [esi + 0x18]
test eax, eax
jne 0x59e360
mov ecx, dword [esp + 0x50]
mov edx, ebp
mov eax, edi
call fcn.005466a1
mov edx, eax
mov eax, dword [edi]
test eax, eax
je 0x59e2e8
mov dword [esp + 0x5c], edx
mov dword [esp], edi
call dword [eax + 4]
mov dword [edi], 0
mov edx, dword [esp + 0x5c]
test edx, edx
jne 0x59e44e
cmp byte [ebp], 0
je 0x59e30e
mov eax, dword [esp + 0x54]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0086e951
test eax, eax
je 0x59e463
mov dword [esp], ebx
call fcn.0086e921
and eax, 0x3fffffff
lea ebx, [ebx + eax + 1]
mov ecx, ebx
sub ecx, dword [esp + 0x38]
mov eax, ecx
cdq
cmp ecx, dword [esp + 0x88]
mov eax, edx
sbb eax, dword [esp + 0x8c]
jge 0x59e405
lea eax, [esp + 0x7c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call dword [esi + 0x20]
test eax, eax
je 0x59e291
mov esi, dword [esp + 0x48]
mov edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00547771
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
test eax, eax
je 0x59e38c
mov ebx, dword [esp + 0x34]
mov dword [esp], ebx
call dword [eax + 4]
mov dword [ebx], 0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00547771
jmp 0x59e081
xor edx, edx
mov eax, esi
call fcn.0054ab31
mov edi, eax
test eax, eax
jne 0x59e081
jmp 0x59e109
test edi, edi
mov ebp, dword [esp + 0x30]
setne al
and al, byte [esp + 0x48]
mov byte [esp + 0x28], al
mov eax, ebp
cmp ebp, 0x20a
jne 0x59e06f
mov dword [esp + 0x30], edi
jmp 0x59e0bc
test edi, edi
setne dl
and dl, byte [esp + 0x48]
mov byte [esp + 0x28], dl
jmp 0x59e06f
mov dword [esp], 0
mov edi, 7
call fcn.00547771
jmp 0x59e081
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx]
test eax, eax
je 0x59e427
mov dword [esp], ebx
call dword [eax + 4]
mov dword [ebx], 0
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x1c]
test eax, eax
je 0x59e366
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], edx
call eax
mov edi, eax
jmp 0x59e366
mov esi, dword [esp + 0x48]
mov edi, edx
jmp 0x59e366
mov edi, 7
jmp 0x59e366
mov esi, dword [esp + 0x48]
xor edi, edi
jmp 0x59e366