Function at 0x6593d0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x98d270]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x6c]
cmp eax, dword [ecx + 8]
jbe 0x659fab
sub esp, 0xec
lea eax, [0x6ec120]
mov dword [esp], eax
call fcn.0040c4f0
nop
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
lea ecx, [0x6e3180]
mov dword [esp], ecx
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xf0]
mov dword [eax], ecx
mov ecx, dword [0x98d4e0]
test ecx, ecx
jne 0x659436
mov ecx, dword [esp + 0xf4]
jmp 0x659444
call fcn.00468990
mov ecx, dword [esp + 0xf4]
mov dword [edi], ecx
mov dword [esp + 0x94], eax
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0x7fffffff
lea edx, [0x6b8ea0]
mov dword [esp], edx
call fcn.0040c4f0
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 4]
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 8], 0x60
mov dword [esp + 0xc], 0x60
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call ecx
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x659aed
mov eax, dword [esp + 0xb8]
cmp byte [eax], 0x4d
jne 0x659613
cmp byte [eax + 1], 0x5a
jne 0x659613
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x54], eax
nop
lea ecx, [0x6b8260]
mov dword [esp], ecx
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x10], ebp
call edx
mov eax, dword [esp + 0xb4]
cmp byte [eax], 0x50
jne 0x65957a
cmp byte [eax + 1], 0x45
jne 0x65957a
movzx ecx, byte [eax + 2]
test cl, cl
jne 0x65957a
movzx ecx, byte [eax + 3]
test cl, cl
jne 0x65957a
mov eax, dword [esp + 0x54]
add eax, 4
mov ecx, 0
adc ecx, 0
jmp 0x659617
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x6b8260]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409b50
mov eax, dword [esp + 8]
lea ecx, [0x6b8260]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
lea eax, [0x717edb]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
lea eax, [esp + 0xbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c2e60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
add eax, ebx
adc ecx, ebp
cmp ebp, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
cmp eax, ebx
setb bl
and ebp, ebx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
jne 0x659655
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
lea eax, [0x773d88]
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [0x775a8c]
mov dword [esp + 8], ecx
lea ebx, [0x98d0c0]
mov dword [esp + 0xc], ebx
lea ebp, [0x6a92e0]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x14], ebp
call fcn.004ce350
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x659ac5
mov eax, dword [esp + 0xa4]
movzx ecx, word [eax]
cmp cx, 0x5032
ja 0x6596d8
cmp cx, 0x14c
ja 0x6596c5
test cx, cx
je 0x659704
cmp cx, 0x14c
je 0x659704
jmp 0x659a32
cmp cx, 0x1c4
je 0x659704
cmp cx, 0x5032
je 0x659704
jmp 0x659a32
cmp cx, 0x5128
ja 0x6596f2
cmp cx, 0x5064
je 0x659704
cmp cx, 0x5128
je 0x659704
jmp 0x659a32
cmp cx, 0x8664
je 0x659704
cmp cx, 0xaa64
jne 0x659a32
mov dword [esp], eax
lea ecx, [0x774910]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.0065d0a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xa4]
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], ecx
mov eax, dword [0x98d4e0]
test eax, eax
je 0x659761
mov eax, edi
call fcn.004689a0
mov dword [edi], edx
mov ecx, dword [eax + 0x40]
mov dword [edi + 4], ecx
mov edi, eax
mov dword [edi + 0x40], edx
test ebx, ebx
jne 0x659a12
mov dword [esp], edi
lea eax, [0x774910]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
call fcn.0065d560
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xac], esi
mov edi, dword [esp + 0xa4]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
mov esi, dword [0x98d4e0]
test esi, esi
je 0x6597de
mov dword [esp + 0xb0], ebp
mov esi, edi
call fcn.004689a0
mov dword [edi], edx
mov ebp, dword [esi + 0x34]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0xb0]
mov edi, esi
mov dword [edi + 0x34], edx
test ebx, ebx
jne 0x6599eb
mov ebx, dword [edi + 0x40]
mov ebp, dword [edi + 0x44]
mov esi, dword [edi + 0x48]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
call fcn.0065db50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0xa4]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
mov eax, dword [0x98d4e0]
test eax, eax
je 0x65984e
mov eax, edi
call fcn.004689a0
mov dword [edi], edx
mov ecx, dword [eax + 0x28]
mov dword [edi + 4], ecx
mov edi, eax
mov dword [edi + 0x28], edx
test ebx, ebx
jne 0x6599cb
mov esi, edi
lea edi, [esp + 0x58]
call fcn.0046910e
lea eax, [0x6ebfe0]
mov dword [esp], eax
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
call fcn.004cf4a0
mov eax, dword [esp + 8]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 0xc]
mov esi, edx
mov edx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x4c]
adc ecx, eax
add edx, ebx
adc ecx, ebp
cmp ebp, ecx
sete al
xchg ebp, ebx
setg bl
xchg ebp, ebx
cmp edx, ebx
setb bl
and eax, ebx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6598cb
mov eax, dword [0x95dc70]
mov ecx, dword [0x95dc74]
jmp 0x6598d5
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ecx
xor eax, eax
xor ecx, ecx
test eax, eax
jne 0x6599ab
mov eax, dword [esp + 0xa4]
movzx ecx, word [eax + 0x10]
lea edx, [0x774910]
mov dword [esp], edx
mov dword [esp + 4], esi
mov word [esp + 8], cx
call fcn.0065a020
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0xa4]
mov dword [esi + 0x14], eax
mov eax, dword [0x98d4e0]
test eax, eax
je 0x659934
call fcn.004689a0
mov dword [edi], ecx
mov eax, dword [esi + 0x18]
mov dword [edi + 4], eax
mov dword [esi + 0x18], ecx
test edx, edx
jne 0x65998b
movzx eax, word [esi + 2]
lea ecx, [0x6daf20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044e050
mov eax, dword [esp + 0xa4]
movzx ecx, word [eax + 2]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov ecx, dword [0x98d4e0]
test ecx, ecx
je 0x659981
call fcn.004689a0
mov dword [edi], edx
mov ebx, dword [eax + 0x1c]
mov dword [edi + 4], ebx
mov dword [eax + 0x1c], edx
xor ecx, ecx
jmp 0x659b1d
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebp
add esp, 0xec
ret
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x100], esi
add esp, 0xec
ret
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], ebp
mov eax, dword [esp + 0xac]
mov dword [esp + 0x100], eax
add esp, 0xec
ret
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x100], esi
add esp, 0xec
ret
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
movzx eax, word [eax]
mov word [esp], ax
call fcn.00409bb0
mov eax, dword [esp + 4]
lea ecx, [0x6bd5e0]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
lea eax, [0x716da0]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0xbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c2e60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov dword [ecx + eax*4], edx
lea ecx, [eax + 1]
mov eax, ebp
movzx edx, word [eax + 2]
cmp ecx, edx
jge 0x659e84
mov dword [esp + 0x44], ecx
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.00468c26
lea ecx, [0x773d88]
mov dword [esp], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
lea ebx, [0x775a8c]
mov dword [esp + 8], ebx
lea ebp, [0x98d0c0]
mov dword [esp + 0xc], ebp
lea esi, [0x6c5980]
mov dword [esp + 0x10], esi
lea esi, [esp + 0x6c]
mov dword [esp + 0x14], esi
call fcn.004ce350
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x659e5c
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ebx, dword [eax + 0x48]
lea ebp, [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.0065cc60
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x659e34
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
lea edx, [0x6e8b60]
mov dword [esp], edx
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [esp + 0x98], eax
lea edi, [esp + 0xc4]
xor eax, eax
call fcn.00468c26
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xe0], ecx
movzx ecx, word [esp + 0x8c]
mov word [esp + 0xe4], cx
movzx ecx, word [esp + 0x8e]
mov word [esp + 0xe6], cx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xe8], ecx
mov ecx, dword [0x98d4e0]
test ecx, ecx
je 0x659cb3
lea eax, [0x6f1100]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
lea ecx, [esp + 0xc4]
mov dword [esp + 8], ecx
call fcn.00411600
xor eax, eax
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xc4]
call fcn.004690dc
mov ecx, dword [esp + 0x80]
test ecx, ecx
jne 0x659cdf
lea ecx, [0x98d0c0]
lea edx, [0x773d9c]
jmp 0x659ced
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x38], ebp
mov esi, dword [ebx + 0x10]
mov edi, 0xffffffff
sub edi, esi
mov ebx, 0x7fffffff
sbb ebx, 0
test ebx, ebx
sete bl
setg cl
cmp edi, ebp
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, ebx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x659d3a
add esi, ebp
adc eax, 0
jmp 0x659d44
mov eax, 0x7fffffff
mov esi, 0xffffffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
lea ecx, [0x6e3180]
mov dword [esp], ecx
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov ecx, dword [0x98d4e0]
test ecx, ecx
jne 0x659d77
mov edx, dword [esp + 0x9c]
jmp 0x659d85
call fcn.00468990
mov edx, dword [esp + 0x9c]
mov dword [edi], edx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 0x1c], edx
mov edx, dword [0x98d4e0]
test edx, edx
jne 0x659dc1
mov edx, dword [esp + 0x98]
jmp 0x659dd5
call fcn.004689a0
mov dword [edi], eax
mov edx, dword [esp + 0x98]
mov ebx, dword [edx + 0x3c]
mov dword [edi + 4], ebx
mov dword [edx + 0x3c], eax
lea ebx, [0x773bf4]
mov dword [edx + 0x34], ebx
mov ebp, dword [0x98d4e0]
test ebp, ebp
je 0x659df8
call fcn.004689a0
mov dword [edi], eax
mov ebp, dword [edx + 0x38]
mov dword [edi + 4], ebp
mov dword [edx + 0x38], eax
mov ebp, dword [esp + 0xa4]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x44]
cmp eax, ecx
jae 0x659fa5
mov esi, dword [0x98d4e0]
mov ecx, dword [ebp + 0x1c]
test esi, esi
je 0x659b15
call fcn.004689a0
mov dword [edi], edx
mov esi, dword [ecx + eax*4]
mov dword [edi + 4], esi
jmp 0x659b15
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
add esp, 0xec
ret
mov edx, dword [eax + 0x20]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0x94]
xor ecx, ecx
jmp 0x659ea4
lea ecx, [ebp + 1]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x94]
cmp ecx, edx
jge 0x659f71
mov ebp, dword [eax + 0x20]
cmp ecx, ebp
jae 0x659f9c
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 0x1c]
mov edx, dword [edx + ecx*4]
test byte [edx], al
mov dword [esp], edx
lea edx, [0x774910]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0065cd70
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x40]
cmp ebp, ecx
jae 0x659f95
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb0], edx
mov esi, dword [eax + 0x1c]
mov esi, dword [esi + ebp*4]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ecx
mov edi, dword [0x98d4e0]
test edi, edi
je 0x659f38
call fcn.004689a0
mov dword [edi], ebx
mov ecx, dword [esi + 0x28]
mov dword [edi + 4], ecx
mov dword [esi + 0x28], ebx
test edx, edx
je 0x659e96
mov dword [esp + 0xf8], 0
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x100], eax
add esp, 0xec
ret
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
add esp, 0xec
ret
mov eax, ebp
call fcn.00468a00
mov eax, ecx
mov ecx, ebp
call fcn.00468a00
call fcn.00468a00
nop
call fcn.00467590
jmp fcn.006593d0