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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x5d5d7a
sub esp, 0x8c
lea edi, [esp + 0x64]
lea esi, [0x6c8dc0]
call fcn.0044bab8
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
jmp 0x5d5656
inc eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x7c]
cmp eax, 2
jge 0x5d5d25
mov dword [esp + 0x28], eax
lea ecx, [esp + eax*8 + 0x64]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 0x98]
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov esi, dword [esp + 0x9c]
cmp ecx, esi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebp
cmp ecx, esi
xchg ebp, ebx
setg bl
xchg ebp, ebx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x5d5d1c
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
lea eax, [0x635480]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00437b60
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x40]
sub eax, ecx
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x90]
mov edi, dword [edi + 0x10]
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x44]
sbb eax, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x5d576a
mov dword [esp + 0x2c], eax
mov dword [esp + 0x74], ecx
mov edx, dword [0x86fdd0]
cmp eax, edx
jne 0x5d5cf4
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, dword [0x86fdd4]
mov dword [esp + 8], edx
call fcn.00402e00
movzx eax, byte [esp + 0xc]
test al, al
je 0x5d5cf4
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.005d6510
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x5d57ed
mov eax, dword [esp + 0x28]
cmp eax, 1
je 0x5d57c1
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x9c]
cmp ecx, edx
sete cl
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
cmp ebx, ebp
sete bl
and ebx, ecx
test bl, bl
je 0x5d5649
mov eax, dword [0x86fba8]
mov ecx, dword [0x86fbac]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
add esp, 0x8c
ret
mov ecx, dword [esp + 0x38]
cmp eax, ecx
ja 0x5d5d73
mov edx, dword [esp + 0x60]
mov ebx, edx
add edx, eax
sub ecx, eax
mov ebp, dword [esp + 0x3c]
sub ebp, eax
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
mov edi, dword [esp + 0x7c]
add ebp, edi
mov edi, eax
sar eax, 0x1f
add ebx, edi
mov ebx, dword [esp + 0x5c]
adc ebx, eax
cmp ecx, 4
jb 0x5d5d6c
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebx
lea eax, [esi - 4]
mov edi, eax
neg eax
sar eax, 0x1f
and eax, 4
lea ebx, [ebp + eax]
mov dword [esp + 0x80], ebx
lea edx, [ecx - 4]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edi
cmp edx, 1
jbe 0x5d5d65
movzx eax, word [ebp + eax]
lea edx, [ecx - 6]
mov dword [esp + 0x84], edx
lea ebp, [esi - 6]
mov dword [esp + 0x88], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
lea edi, [ebx + ebp]
mov dword [esp + 0x80], edi
cmp edx, 1
jbe 0x5d5d5e
movzx edx, word [ebx + ebp]
mov dword [esp + 0x60], edx
lea ebx, [ecx - 8]
mov dword [esp + 0x84], ebx
lea ebp, [esi - 8]
mov dword [esp + 0x88], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
lea edx, [edi + ebp]
mov dword [esp + 0x80], edx
cmp ebx, 1
jbe 0x5d5d57
movzx ebx, word [edi + ebp]
mov dword [esp + 0x58], ebx
lea ebp, [ecx - 0xa]
mov dword [esp + 0x84], ebp
lea edi, [esi - 0xa]
mov dword [esp + 0x88], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ebx, [edx + edi]
mov dword [esp + 0x80], ebx
cmp ebp, 1
jbe 0x5d5d50
movzx edx, word [edx + edi]
mov dword [esp + 0x54], edx
lea ebp, [ecx - 0xc]
mov dword [esp + 0x84], ebp
lea edi, [esi - 0xc]
mov dword [esp + 0x88], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea edx, [edi + ebx]
mov dword [esp + 0x80], edx
cmp ebp, 3
jbe 0x5d5d49
lea ebp, [ecx - 0x10]
mov ebx, dword [ebx + edi]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x84], ebp
lea edi, [esi - 0x10]
mov dword [esp + 0x88], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea ebx, [edi + edx]
mov dword [esp + 0x80], ebx
cmp ebp, 3
jbe 0x5d5d42
lea ebp, [ecx - 0x14]
mov edx, dword [edx + edi]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x84], ebp
lea edi, [esi - 0x14]
mov dword [esp + 0x88], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea edx, [edi + ebx]
mov dword [esp + 0x80], edx
cmp ebp, 1
jbe 0x5d5d3b
mov dword [esp + 0x48], eax
lea eax, [ecx - 0x16]
movzx ecx, word [ebx + edi]
mov word [esp + 0x26], cx
mov dword [esp + 0x84], eax
lea eax, [esi - 0x16]
mov dword [esp + 0x88], eax
neg eax
sar eax, 0x1f
and eax, 2
add eax, edx
mov dword [esp + 0x80], eax
lea eax, [0x663240]
mov dword [esp], eax
call fcn.00409aa0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], 0
movzx ecx, word [esp + 0x26]
mov word [eax + 0x28], cx
movzx ecx, cx
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
cmp ecx, ebp
jg 0x5d5c96
cmp ecx, edx
ja 0x5d5d34
mov dword [esp + 0x78], eax
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0043aff0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x30], eax
mov eax, dword [0x881b80]
test eax, eax
jne 0x5d5c87
mov dword [edx + 0x2c], ecx
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
cmp ecx, 0xffff
sete cl
test eax, eax
sete al
and eax, ecx
test al, al
je 0x5d5c49
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
call fcn.005d5d90
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x5d5be9
test ebx, ebx
jne 0x5d5bc9
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
test edx, edx
sete bl
test ecx, ecx
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ebx
test edx, edx
setl bl
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d5b7a
mov eax, dword [0x86fbac]
mov ecx, dword [0x86fba8]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
add esp, 0x8c
ret
mov ebx, dword [esp + 0x98]
cmp ecx, ebx
setae cl
mov ebx, dword [esp + 0x9c]
cmp edx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ecx
cmp edx, ebx
setg cl
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5d5b4e
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
add esp, 0x8c
ret
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], edx
add esp, 0x8c
ret
test eax, eax
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebp
test ecx, ecx
xchg ebp, ebx
setg bl
xchg ebp, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d5b1f
mov edx, dword [esp + 0x90]
mov dword [esp], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
call fcn.005d6030
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jmp 0x5d5b1f
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0x18]
cmp ecx, 0xffff
sete cl
test eax, eax
sete al
and eax, ecx
test al, al
jne 0x5d5add
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 0x24]
cmp eax, 0xffffffff
sete al
test ecx, ecx
sete cl
and eax, ecx
test al, al
jne 0x5d5add
jmp 0x5d5b27
lea edi, [edx + 0x2c]
mov eax, ecx
call fcn.0044b4d0
jmp 0x5d5abf
lea eax, [0x6416a0]
mov dword [esp], eax
call fcn.00409aa0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x1b
mov eax, dword [0x881b80]
test eax, eax
jne 0x5d5ce7
lea eax, [0x684885]
mov dword [edi], eax
mov dword [esp + 0xa0], 0
lea eax, [0x6c9240]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edi
add esp, 0x8c
ret
lea eax, [0x684885]
call fcn.0044b4d0
jmp 0x5d5cc1
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xa8], eax
add esp, 0x8c
ret
mov esi, ecx
mov ebx, edx
jmp 0x5d56a3
mov esi, ecx
mov ecx, edx
mov ebp, ebx
xor edx, edx
xor ebx, ebx
jmp 0x5d5829
call fcn.004259a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.00449d70
jmp fcn.005d5610