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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x5c9c41
sub esp, 0xcc
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax]
mov dword [esp + 0x74], edx
mov ebx, dword [eax + 0x44]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x40]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x48], ebp
mov esi, dword [eax + 0x44]
mov ecx, dword [ecx + 0x14]
mov dword [esp], esi
call ecx
lea eax, [0x730c00]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov word [eax], 0xfe
mov byte [eax + 2], 0
mov ecx, dword [esp + 0x44]
mov byte [eax + 3], cl
mov edx, dword [esp + 0xd0]
mov ebx, dword [edx + 0x40]
mov ebp, dword [edx + 0x44]
mov ebx, dword [ebx + 0x20]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call ebx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ecx, dword [ecx + 0x20]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.005d3910
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ecx, dword [ecx + 0x20]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
movzx edx, word [ecx + 0x80]
test dx, dx
jne 0x5c9199
mov ebx, dword [ecx + 0x74]
test ebx, ebx
jne 0x5c9199
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x2f
call fcn.005bee30
lea eax, [0x73cfa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x39
lea ecx, [0x77a9dc]
mov dword [eax], ecx
lea ecx, [0x7caa44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
mov ebx, dword [ecx + 0x74]
mov ebp, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
test ebx, ebx
je 0x5c91d8
mov esi, dword [eax + 0x10]
mov dword [esi + 0xbc], ebp
mov dword [esi + 0xc0], ecx
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c91c7
mov dword [esi + 0xb8], ebx
jmp 0x5c91d8
lea edi, [esi + 0xb8]
mov ecx, eax
mov eax, ebx
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [eax + 0xc]
movzx ebx, word [ecx + 0x54]
test bx, bx
jne 0x5c9200
movzx ecx, word [ecx + 0x80]
test cx, cx
je 0x5c924d
mov edx, dword [eax + 0x10]
mov ebx, dword [edx + 0x4c]
mov edx, dword [edx + 0x50]
xor ebp, ebp
jmp 0x5c97fa
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x32
call fcn.005bee30
lea eax, [0x73cfa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x2b
lea ecx, [0x777d5a]
mov dword [eax], ecx
lea ecx, [0x7caa44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
mov edi, dword [eax + 0x10]
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c9270
mov dword [edi], 0
jmp 0x5c927b
mov ecx, eax
xor eax, eax
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [eax + 0x10]
mov ebx, dword [ecx + 0xe4]
test ebx, ebx
je 0x5c92a2
mov ebx, dword [eax + 0x18]
movzx ebx, word [ebx + 0xe]
mov ebp, dword [0x7079d8]
mov esi, dword [0x7079dc]
xor edx, edx
jmp 0x5c94b4
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call fcn.005cc650
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ecx, dword [ecx + 0x20]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call fcn.005cc650
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.005bfa20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x5c949c
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.005bfb50
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
test eax, eax
jne 0x5c9487
lea ecx, [0x73ee00]
cmp ebp, ecx
je 0x5c934c
mov ebx, 0
jne 0x5c93c1
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c9364
mov eax, dword [esp + 0xd0]
mov dword [eax + 0xc], ebx
jmp 0x5c9377
mov ecx, dword [esp + 0xd0]
lea edi, [ecx + 0xc]
mov eax, ebx
call fcn.00456ac0
mov eax, ecx
mov dword [esp], eax
call fcn.005c8bf0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
je 0x5c93a4
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xcc
ret
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
add esp, 0xcc
ret
mov dword [esp + 0x68], esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.005bee30
nop
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x84], eax
lea eax, [0x73ee00]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x8c], eax
lea eax, [0x77bbe5]
mov dword [esp], eax
mov dword [esp + 4], 0x49
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004a4ab0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
add esp, 0xcc
ret
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xcc
ret
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xcc
ret
inc edx
mov ecx, edi
cmp edx, esi
jge 0x5c94c5
mov edi, ecx
mov ecx, dword [ebp + edx*4]
cmp word [ecx], bx
jne 0x5c94b1
jmp 0x5c94c9
mov edi, ecx
xor ecx, ecx
test ecx, ecx
je 0x5c97c2
mov ebx, dword [eax + 0x3c]
mov ecx, dword [ecx + 0xc]
cmp dword [ebx + 0xc], ecx
jne 0x5c9741
mov ecx, dword [esp + 0x74]
mov ebx, dword [ecx + 0x28]
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x5c94f4
lea ebx, [0x782a10]
mov eax, dword [ebx]
mov edx, ebx
call eax
lea edi, [esp + 0xa4]
lea esi, [esp]
call fcn.0045723e
lea edi, [esp + 0x90]
lea esi, [esp + 0xa4]
call fcn.0045723e
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x18]
test byte [ecx], al
lea esi, [ecx + 0x34]
lea edi, [esp + 0xb8]
call fcn.0045723e
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.0045723e
lea edi, [esp + 0x14]
lea esi, [esp + 0xb8]
call fcn.0045723e
call fcn.00494e10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf4240
call fcn.00450c50
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [ecx + 0xe4]
mov ecx, dword [ecx + 0xe0]
add ebp, dword [ebx + 0x80]
test esi, esi
jbe 0x5c97f0
mov dword [ecx + 0xc], ebp
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
call fcn.00502c80
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x40], edx
lea ebx, [0x730c00]
mov dword [esp], ebx
call fcn.0040b440
mov eax, dword [esp + 4]
mov word [eax], 0xfe
mov byte [eax + 2], 0
mov ecx, dword [esp + 0x44]
mov byte [eax + 3], cl
mov edx, dword [esp + 0x40]
mov ebx, dword [edx + 0x20]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.005d3910
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call fcn.005d18c0
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
mov ebp, dword [eax + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
call fcn.005e0910
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], edx
lea ebx, [0x72fd80]
mov dword [esp], ebx
call fcn.0040b440
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x50]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 8], eax
mov eax, dword [0x901e80]
test eax, eax
jne 0x5c9706
mov eax, dword [esp + 0x78]
mov dword [edi], eax
jmp 0x5c970f
mov eax, dword [esp + 0x78]
call fcn.00456ac0
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call fcn.005d1940
mov eax, dword [esp + 0xd0]
jmp 0x5c92a2
mov dword [edi + 0xe4], 0
mov dword [edi + 0xe8], 0
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c976b
mov dword [edi + 0xe0], 0
jmp 0x5c977c
add edi, 0xe0
mov ecx, eax
xor eax, eax
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [eax + 0x10]
mov dword [ecx + 0xf0], 0
mov dword [ecx + 0xf4], 0
mov edx, dword [0x901e80]
test edx, edx
jne 0x5c97ac
mov dword [ecx + 0xec], 0
jmp 0x5c92a2
lea edi, [ecx + 0xec]
mov ecx, eax
xor eax, eax
call fcn.00456ac0
mov eax, ecx
jmp 0x5c92a2
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.005bee30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
add esp, 0xcc
ret
xor eax, eax
mov ecx, eax
call fcn.00456b40
inc ebp
cmp ebp, edx
jge 0x5c9bf4
lea esi, [ebx + ebp*2]
cmp word [esi], cx
jne 0x5c97f9
mov word [esp + 0x32], cx
mov edx, dword [eax + 0x14]
mov ebx, dword [edx]
mov dword [esp + 0x38], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x58], edx
nop
mov ebp, dword [0x706568]
lea esi, [0x7cbbd0]
cmp ebx, esi
jne 0x5c9873
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00404110
movzx eax, byte [esp + 0xc]
test al, al
je 0x5c985f
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, 0x1d
jmp 0x5c9963
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
nop
mov ebp, dword [0x706564]
lea esi, [0x7cbbac]
cmp ebx, esi
jne 0x5c98c7
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00404110
movzx eax, byte [esp + 0xc]
test al, al
je 0x5c98b3
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, 0x17
jmp 0x5c9963
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
nop
mov ebp, dword [0x706560]
lea esi, [0x7cbb88]
cmp ebx, esi
jne 0x5c9918
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00404110
movzx eax, byte [esp + 0xc]
test al, al
je 0x5c9904
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, 0x18
jmp 0x5c9963
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
nop
mov ebp, dword [0x70656c]
lea esi, [0x7cbb64]
cmp ebx, esi
jne 0x5c9961
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00404110
movzx eax, byte [esp + 0xc]
test al, al
je 0x5c9955
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
mov edx, 0x19
jmp 0x5c9963
mov eax, dword [esp + 0xd0]
movzx ecx, word [esp + 0x32]
xor edx, edx
cmp dx, cx
je 0x5c9ba7
nop
cmp cx, 0x18
ja 0x5c9984
cmp cx, 0x17
je 0x5c9994
cmp cx, 0x18
je 0x5c9994
jmp 0x5c9b5a
cmp cx, 0x19
je 0x5c9994
cmp cx, 0x1d
jne 0x5c9b5a
mov edx, dword [esp + 0x74]
mov ebx, dword [edx + 0x28]
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
test ebp, ebp
jne 0x5c99b0
mov ebp, dword [0x8db300]
mov ebx, dword [0x8db304]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov word [esp + 8], cx
call fcn.005e0d30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x5c9b24
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c99ef
mov ecx, dword [esp + 0xd0]
mov dword [ecx + 0x14], eax
jmp 0x5c99fe
mov ecx, dword [esp + 0xd0]
lea edi, [ecx + 0x14]
call fcn.00456ac0
mov dword [esp], eax
call fcn.0055c8e0
mov eax, dword [esp + 4]
mov dword [esp + 0x70], eax
lea ecx, [0x72f7c0]
mov dword [esp], ecx
call fcn.0040b440
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, 0x85
ja 0x5c9a3b
mov ebx, edx
mov ebp, 0x85
jmp 0x5c9a7b
mov dword [esp + 0x50], edx
mov dword [esp + 0x78], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x85
mov dword [esp + 0xc], edx
lea eax, [0x734860]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mov ebp, ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00457450
lea eax, [0x72fe40]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
movzx ecx, word [esp + 0x32]
mov word [eax], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x5c9ad2
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
jmp 0x5c9ae2
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x54]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [esp + 0xd0]
mov ebx, dword [ecx + 0x10]
mov dword [ebx + 0xc8], 1
mov dword [ebx + 0xcc], 1
mov ebp, dword [0x901e80]
test ebp, ebp
jne 0x5c9b12
mov dword [ebx + 0xc4], eax
jmp 0x5c9b1d
lea edi, [ebx + 0xc4]
call fcn.00456ac0
mov eax, ecx
jmp 0x5c924d
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.005bee30
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.005bee30
lea eax, [0x73cfa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x30
lea ecx, [0x779017]
mov dword [eax], ecx
lea ecx, [0x7caa44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x2f
call fcn.005bee30
lea eax, [0x73cfa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3b
lea ecx, [0x77abe9]
mov dword [eax], ecx
lea ecx, [0x7caa44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov byte [esp + 4], 0x2f
call fcn.005bee30
lea eax, [0x73cfa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x26
lea ecx, [0x7766fc]
mov dword [eax], ecx
lea ecx, [0x7caa44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
add esp, 0xcc
ret
call fcn.00455690
jmp fcn.005c9010