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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x298]
cmp eax, dword [ecx + 8]
jbe 0x5ba159
sub esp, 0x318
lea edi, [esp + 0x2b0]
xor eax, eax
call fcn.0045f239
lea edi, [esp + 0x2cc]
call fcn.0045f22d
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x2bc], ecx
call fcn.0044c6b0
mov ecx, dword [esp]
mov dword [esp + 0x2b8], ecx
lea edi, [esp + 0x294]
xor eax, eax
call fcn.0045f239
lea edi, [esp + 0x74]
call fcn.0045f233
lea ecx, [esp + 0x74]
mov dword [esp + 0x2a0], ecx
call fcn.0044c6b0
mov ecx, dword [esp]
mov dword [esp + 0x29c], ecx
mov ecx, dword [esp + 0x320]
test ecx, ecx
je 0x5b9736
mov edx, dword [esp + 0x324]
mov ebx, dword [esp + 0x31c]
mov eax, ecx
xor ebp, ebp
mov esi, 0xffffffff
xor edi, edi
xor eax, eax
mov dword [esp + 0x24], eax
xor ecx, ecx
mov dword [esp + 0x28], ecx
lea ecx, [0x8d5410]
mov dword [esp + 0x268], ecx
mov eax, dword [esp + 0x320]
mov ecx, eax
jmp 0x5b97c4
mov dword [esp + 0x32c], 0
mov dword [esp + 0x330], 0
mov dword [esp + 0x334], 0
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
add esp, 0x318
ret
lea esi, [eax + edx*8]
mov dword [esi], ecx
lea ecx, [eax + edx*8 + 4]
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
lea ecx, [edx + 4]
mov edx, dword [esp + 0x324]
mov esi, dword [esp + 0x31c]
mov edi, dword [esp + 0x320]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x320]
mov ebx, dword [esp + 0x31c]
mov ebp, dword [esp + 0x2c]
add edx, eax
cmp ecx, edx
jae 0x5b9b2a
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], ecx
cmp ebp, 0xf
jb 0x5b9824
mov edx, dword [0x8a79d0]
mov dword [esp + 0x280], edx
mov ebp, dword [0x8a79d4]
mov dword [esp + 0x50], ebp
mov ecx, dword [ebx + 0x274]
mov dword [esp + 0x44], ecx
mov ebx, dword [ebx + 0x270]
mov dword [esp + 0x274], ebx
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x5c]
jmp 0x5b9ffa
mov edx, edi
sub edi, esi
cmp edi, 0x8000000
jbe 0x5b9873
mov edi, edx
mov edx, dword [0x8a79c8]
mov dword [esp + 0x27c], edx
mov ebp, dword [0x8a79cc]
mov dword [esp + 0x4c], ebp
mov ecx, dword [ebx + 0x274]
mov dword [esp + 0x40], ecx
mov ebx, dword [ebx + 0x270]
mov dword [esp + 0x270], ebx
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x64]
jmp 0x5b9e7c
movzx edx, byte [esp + 0x328]
test dl, dl
je 0x5b98e9
lea edi, [esp + 0x188]
xor eax, eax
call fcn.0045f208
mov ecx, dword [ebx + 0x78]
mov edx, dword [ebx + 0x7c]
lea ebp, [0x68b380]
cmp ecx, ebp
jne 0x5b9e49
lea edi, [esp + 0x188]
mov esi, edx
call fcn.0045f520
lea edi, [esp + 0xa8]
lea esi, [esp + 0x188]
call fcn.0045f520
mov eax, dword [esp + 0xc4]
mov dword [esp], ebx
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 4], ecx
call fcn.005b7ea0
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
jne 0x5b9902
jmp 0x5b9ba3
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.005b7ea0
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
je 0x5b9c9c
mov dword [esp + 0x30], eax
lea ecx, [0x6654a0]
mov dword [esp], ecx
call fcn.0040b430
mov eax, dword [esp + 4]
mov dword [esp + 0x288], eax
mov ecx, dword [esp + 0x31c]
mov dword [esp], ecx
lea edx, [0x649ca0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 4
call fcn.005b8bc0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5b9c5e
mov ecx, dword [esp + 0x288]
mov edx, dword [ecx]
test edx, edx
je 0x5b9b62
mov ebx, dword [esp + 0x320]
cmp ebx, edx
ja 0x5b9981
mov ebp, dword [esp + 0x20]
cmp ebp, edx
jb 0x5b9985
jmp 0x5b9be1
mov ebp, dword [esp + 0x20]
test edx, 0x80000000
jbe 0x5b99eb
and edx, 0x7fffffff
cmp edx, 0xffff
jbe 0x5b9cda
mov edx, dword [0x8a79a0]
mov dword [esp + 0x278], edx
mov esi, dword [0x8a79a4]
mov dword [esp + 0x48], esi
mov eax, ebx
mov ebx, dword [esp + 0x31c]
mov edi, ecx
mov ecx, dword [ebx + 0x274]
mov dword [esp + 0x3c], ecx
mov ebp, dword [ebx + 0x270]
mov dword [esp + 0x26c], ebp
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
jmp 0x5b9d07
lea eax, [0x65d520]
mov dword [esp], eax
lea ecx, [esp + 0x294]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040e030
movzx eax, byte [esp + 0x10]
test al, al
je 0x5b9a1a
mov eax, dword [esp + 0x2c]
lea ebp, [eax + 1]
jmp 0x5b9a4b
mov eax, dword [esp + 0x288]
mov ecx, dword [eax]
lea edx, [0x65d520]
mov dword [esp], edx
lea ebx, [esp + 0x294]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0040e190
mov eax, dword [esp + 0xc]
mov byte [eax], 1
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x288]
mov ecx, dword [eax]
mov edx, dword [esp + 0x38]
cmp edx, ecx
jae 0x5b9a60
mov edx, ecx
jmp 0x5b9a66
mov edx, ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
cmp ebx, edx
ja 0x5b9a70
mov edx, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], ebp
lea eax, [0x65d460]
mov dword [esp], eax
lea ebx, [esp + 0x2b0]
mov dword [esp + 4], ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 8], esi
call fcn.0040e190
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x8d5630]
test eax, eax
jne 0x5b9ab8
mov ecx, dword [esp + 0x288]
mov dword [edi], ecx
jmp 0x5b9ac6
mov eax, dword [esp + 0x288]
call fcn.0045efb0
mov ecx, eax
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x28]
cmp ebp, ebx
jb 0x5b9ae3
mov eax, dword [esp + 0x268]
jmp 0x5b9774
mov dword [esp + 0x58], ecx
lea eax, [0x66a9a0]
mov dword [esp], eax
mov ecx, dword [esp + 0x268]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00448240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x58]
mov ebp, edx
mov edx, dword [esp + 0x24]
jmp 0x5b9774
mov eax, dword [ebx + 0x2c0]
mov dword [esp], eax
lea eax, [0x6a7d36]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x39
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.005038f0
mov eax, dword [esp + 0x268]
mov dword [esp + 0x32c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
add esp, 0x318
ret
mov dword [esp + 0x32c], 0
mov dword [esp + 0x330], 0
mov dword [esp + 0x334], 0
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
add esp, 0x318
ret
mov dword [esp + 0x28c], 0
mov dword [esp + 0x290], 0
mov dword [esp], ebp
call fcn.00408ce0
mov eax, dword [esp + 4]
lea ecx, [0x65ab80]
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax + 0x2c0]
mov dword [esp], eax
lea eax, [0x6a9e55]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x5d
lea eax, [esp + 0x28c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.005038f0
jmp 0x5b9b62
mov dword [esp + 0x32c], 0
mov dword [esp + 0x330], 0
mov dword [esp + 0x334], 0
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
add esp, 0x318
ret
mov dword [esp + 0x32c], 0
mov dword [esp + 0x330], 0
mov dword [esp + 0x334], 0
mov dword [esp + 0x338], 0
mov dword [esp + 0x33c], 0
add esp, 0x318
ret
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
jmp 0x5b9a70
lea edx, [ebx + 1]
mov ebp, dword [esp + 0x26c]
mov ebx, dword [esp + 0x31c]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x278]
mov ebx, dword [esp + 0x54]
cmp ebx, ecx
jge 0x5b9d70
lea edx, [ebp + ebx*8]
mov ebp, dword [edx + 4]
mov edx, dword [edx]
cmp ebp, esi
jne 0x5b9ceb
mov dword [esp], edx
mov eax, dword [esp + 0x278]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004025e0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5b9d58
mov eax, dword [esp + 0x320]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x288]
jmp 0x5b9ceb
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
mov eax, dword [esp + 0x320]
mov edi, dword [esp + 0x288]
jl 0x5b9e3c
mov ecx, dword [esp + 0x31c]
mov edx, dword [ecx + 0x274]
lea ebx, [edx + 1]
mov ebp, dword [ecx + 0x270]
mov esi, dword [ecx + 0x278]
cmp esi, ebx
jae 0x5b9dfe
lea eax, [0x65aa40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.00448240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x31c]
mov dword [ebx + 0x278], edx
mov edx, dword [0x8d5630]
test edx, edx
jne 0x5b9ddf
mov dword [ebx + 0x270], eax
jmp 0x5b9dea
lea edi, [ebx + 0x270]
call fcn.0045efb0
mov edi, dword [esp + 0x288]
mov edx, ecx
mov ebp, eax
mov eax, dword [esp + 0x320]
mov ecx, ebx
lea ebx, [edx + 1]
mov dword [ecx + 0x274], ebx
mov ebx, dword [0x8a79a0]
mov esi, dword [0x8a79a4]
lea ecx, [ebp + edx*8 + 4]
mov dword [ecx], esi
mov ecx, dword [0x8d5630]
lea edx, [ebp + edx*8]
test ecx, ecx
jne 0x5b9e2b
mov dword [edx], ebx
jmp 0x5b9e3c
mov ecx, edi
mov edi, edx
mov ebp, eax
mov eax, ebx
call fcn.0045efb0
mov eax, ebp
mov edi, ecx
mov ecx, edi
mov ebx, eax
mov ebp, dword [esp + 0x20]
jmp 0x5b9cda
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x65a380]
mov dword [esp + 8], eax
call fcn.00408a40
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x270]
mov edx, dword [esp + 0x40]
mov edx, dword [esp + 0x27c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jge 0x5b9ee2
lea ebx, [ebx + edx*8]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ecx, ebp
jne 0x5b9e5f
mov dword [esp], ebx
mov eax, dword [esp + 0x27c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004025e0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5b9ec9
mov eax, dword [esp + 0x320]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jmp 0x5b9e5f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
cmp ecx, edx
mov eax, dword [esp + 0x320]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jl 0x5b9fc7
mov ecx, dword [esp + 0x31c]
mov edx, dword [ecx + 0x274]
lea ebx, [edx + 1]
mov ebp, dword [ecx + 0x270]
mov ecx, dword [ecx + 0x278]
cmp ecx, ebx
jae 0x5b9f6f
lea eax, [0x65aa40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.00448240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x31c]
mov dword [ebx + 0x278], edx
mov edx, dword [0x8d5630]
test edx, edx
jne 0x5b9f51
mov dword [ebx + 0x270], eax
jmp 0x5b9f5c
lea edi, [ebx + 0x270]
call fcn.0045efb0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov edx, ecx
mov ebp, eax
mov eax, dword [esp + 0x320]
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x31c]
mov dword [ebx + 0x274], ecx
mov ecx, dword [0x8a79c8]
mov dword [esp + 0x284], ecx
mov ebx, dword [0x8a79cc]
lea ecx, [ebp + edx*8 + 4]
mov dword [ecx], ebx
mov ecx, dword [0x8d5630]
lea edx, [ebp + edx*8]
test ecx, ecx
jne 0x5b9fb1
mov ecx, dword [esp + 0x284]
mov dword [edx], ecx
jmp 0x5b9fc7
mov ecx, edi
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x284]
call fcn.0045efb0
mov eax, ebx
mov edi, ecx
mov ecx, dword [esp + 0x20]
mov edx, edi
mov ebx, dword [esp + 0x31c]
mov ebp, dword [esp + 0x2c]
jmp 0x5b9873
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x274]
mov edx, dword [esp + 0x44]
mov edx, dword [esp + 0x280]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jge 0x5ba060
lea ebx, [ebx + edx*8]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ecx, ebp
jne 0x5b9fdd
mov dword [esp], ebx
mov eax, dword [esp + 0x280]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004025e0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5ba047
mov eax, dword [esp + 0x320]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jmp 0x5b9fdd
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
cmp ecx, edx
mov eax, dword [esp + 0x320]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jl 0x5ba145
mov ecx, dword [esp + 0x31c]
mov edx, dword [ecx + 0x274]
lea ebx, [edx + 1]
mov ebp, dword [ecx + 0x270]
mov ecx, dword [ecx + 0x278]
cmp ecx, ebx
jae 0x5ba0ed
lea eax, [0x65aa40]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.00448240
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x31c]
mov dword [ebx + 0x278], edx
mov edx, dword [0x8d5630]
test edx, edx
jne 0x5ba0cf
mov dword [ebx + 0x270], eax
jmp 0x5ba0da
lea edi, [ebx + 0x270]
call fcn.0045efb0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov edx, ecx
mov ebp, eax
mov eax, dword [esp + 0x320]
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x31c]
mov dword [ebx + 0x274], ecx
mov ecx, dword [0x8a79d0]
mov dword [esp + 0x284], ecx
mov ebx, dword [0x8a79d4]
lea ecx, [ebp + edx*8 + 4]
mov dword [ecx], ebx
mov ecx, dword [0x8d5630]
lea edx, [ebp + edx*8]
test ecx, ecx
jne 0x5ba12f
mov ecx, dword [esp + 0x284]
mov dword [edx], ecx
jmp 0x5ba145
mov ecx, edi
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x284]
call fcn.0045efb0
mov eax, ebx
mov edi, ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x31c]
mov ebp, dword [esp + 0x2c]
jmp 0x5b9824
call fcn.0045dba0
jmp fcn.005b9660