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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2e4]
cmp eax, dword [ecx + 8]
jbe 0x5d519a
sub esp, 0x364
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x138]
mov eax, dword [ecx + 0x13c]
test edx, edx
je 0x5d4693
nop
movzx ebx, byte [0x8553f8]
test bl, bl
je 0x5d4659
mov dword [0x8553fc], edx
mov ebx, dword [0x87bd00]
test ebx, ebx
jne 0x5d464e
mov dword [0x855400], eax
jmp 0x5d4659
lea edi, [0x855400]
call fcn.004626c0
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], eax
mov edx, dword [esp + 0x284]
test edx, edx
je 0x5d468b
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5d4699
or ebx, 0x80
jmp 0x5d4699
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x5d4699
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x18
call fcn.004b57e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5d46f8
cmp eax, 7
jne 0x5d46e0
mov eax, dword [ecx]
jmp 0x5d4715
cmp eax, 8
jne 0x5d46ea
movzx eax, byte [ecx]
jmp 0x5d4715
cmp eax, 9
jne 0x5d515f
movzx eax, word [ecx]
jmp 0x5d4715
cmp eax, 0xa
jne 0x5d4701
mov eax, dword [ecx]
jmp 0x5d4715
cmp eax, 0xb
jne 0x5d470a
mov eax, dword [ecx]
jmp 0x5d4715
cmp eax, 0xc
jne 0x5d515f
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x260]
mov dword [esp], ecx
mov edx, dword [esp + 0x264]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x17
call fcn.004b57e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5d477e
cmp eax, 7
jne 0x5d4762
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5d47a2
cmp eax, 8
jne 0x5d476e
movzx eax, byte [ecx]
xor ecx, ecx
jmp 0x5d47a2
cmp eax, 9
jne 0x5d5125
movzx eax, word [ecx]
xor ecx, ecx
jmp 0x5d47a2
cmp eax, 0xa
jne 0x5d4789
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5d47a2
cmp eax, 0xb
jne 0x5d4795
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x5d47a2
cmp eax, 0xc
jne 0x5d5125
mov eax, dword [ecx]
xor ecx, ecx
test ecx, ecx
seta dl
sete bl
test eax, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, ebp
or ebx, edx
test bl, bl
je 0x5d49bf
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x34]
and edx, 0xf0000000
shr edx, 0x1c
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x368]
movzx ebp, byte [ebx + 0x294]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d48d3
mov eax, dword [esp + 0x260]
mov dword [esp], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004b57e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5d484b
cmp eax, 7
jne 0x5d4833
mov ecx, dword [ecx]
jmp 0x5d4868
cmp eax, 8
jne 0x5d483d
movzx ecx, byte [ecx]
jmp 0x5d4868
cmp eax, 9
jne 0x5d50eb
movzx ecx, word [ecx]
jmp 0x5d4868
cmp eax, 0xa
jne 0x5d4854
mov ecx, dword [ecx]
jmp 0x5d4868
cmp eax, 0xb
jne 0x5d485d
mov ecx, dword [ecx]
jmp 0x5d4868
cmp eax, 0xc
jne 0x5d50eb
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0x90]
xor eax, eax
call fcn.00462908
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
lea ebx, [0x652a00]
cmp edx, ebx
jne 0x5d50d5
lea edi, [esp + 0x90]
call fcn.00462c20
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x368]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005cf880
mov eax, dword [esp + 8]
mov ecx, 1
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x5d4da1
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x260]
mov dword [esp], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004b57e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5d4936
cmp eax, 7
jne 0x5d491e
mov ecx, dword [ecx]
jmp 0x5d4953
cmp eax, 8
jne 0x5d4928
movzx ecx, byte [ecx]
jmp 0x5d4953
cmp eax, 9
jne 0x5d4d4f
movzx ecx, word [ecx]
jmp 0x5d4953
cmp eax, 0xa
jne 0x5d493f
mov ecx, dword [ecx]
jmp 0x5d4953
cmp eax, 0xb
jne 0x5d4948
mov ecx, dword [ecx]
jmp 0x5d4953
cmp eax, 0xc
jne 0x5d4d4f
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
lea edi, [esp + 0x170]
xor eax, eax
call fcn.00462904
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
lea ebx, [0x6524c0]
cmp edx, ebx
jne 0x5d4d39
lea edi, [esp + 0x170]
call fcn.00462bf8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [esp + 0x368]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005cf880
mov eax, dword [esp + 8]
mov ecx, 1
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x5d49fa
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x36c], edx
mov dword [esp + 0x370], ecx
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, ebp
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x278]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0x38]
cmp edx, edi
setb bl
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
xchg ebp, ebx
setbe bl
xchg ebp, ebx
cmp edx, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and ebp, edi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5d4c90
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x270], esi
mov dword [esp + 0x40], eax
lea eax, [0x628460]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x2ac]
add edx, 0xfffffffc
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jbe 0x5d4a76
mov edx, dword [0x854c78]
xor ebp, ebp
jmp 0x5d4aad
mov edx, dword [ecx + 0x28c]
mov ebp, dword [ecx + 0x288]
mov esi, dword [ecx + 0x290]
cmp ebx, edx
ja 0x5d4d30
sub edx, ebx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
cmp edx, 3
jbe 0x5d4d24
mov ebp, dword [esi + ebp]
xor edx, edx
test edx, edx
jne 0x5d4c65
mov dword [esp + 0x54], ebp
mov edx, dword [esp + 0x78]
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5d4ada
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x5d4b6b
mov dword [esp + 0x27c], eax
mov dword [esp], ecx
lea ebp, [0x61c740]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea esi, [ebx + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.005d05a0
mov eax, dword [esp + 0x27c]
movzx eax, byte [eax]
cmp al, 1
je 0x5d4b16
cmp al, 2
jne 0x5d4b4e
mov byte [esp + 0x23], al
lea edi, [esp + 0x28c]
xor eax, eax
call fcn.00462937
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0xbc]
mov ebx, dword [ecx + 0xb8]
test edx, edx
je 0x5d4c9f
mov ebp, dword [esp + 0x54]
xor esi, esi
jmp 0x5d4ce2
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x54]
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + 0x368]
mov eax, edx
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x64]
cmp ebx, edx
jb 0x5d4b98
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x270]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x88]
jmp 0x5d4bfc
mov dword [esp + 0x268], eax
mov dword [esp + 0x58], edi
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
lea eax, [0x63cf80]
mov dword [esp], eax
mov ebp, dword [esp + 0x270]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044b2b0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x278], esi
movzx esi, byte [esp + 0x21]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x48]
add edx, 1
mov dword [esp + 0x74], edx
shl ecx, 4
mov edx, dword [esp + 0x278]
mov dword [edx + ecx], ebp
xchg esi, eax
mov byte [edx + ecx + 4], al
xchg esi, eax
mov dword [edx + ecx + 0xc], edi
mov ebp, dword [esp + 0x48]
add ebp, 1
mov ebp, dword [esp + 0x4c]
adc ebp, 0
mov dword [esp + 0x70], ebp
mov esi, dword [0x87bd00]
lea edi, [edx + ecx + 8]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x40]
lea ebp, [ebp + ebx + 4]
test esi, esi
jne 0x5d4c5b
mov dword [edx + ecx + 8], eax
jmp 0x5d49e1
call fcn.004626c0
jmp 0x5d49e1
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, esi
jmp 0x5d49c5
lea edi, [esp + 0x28c]
call fcn.00462937
lea edi, [esp + 0x2d4]
lea esi, [esp + 0x28c]
call fcn.00462df6
mov edx, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2e8]
movzx eax, byte [esp + 0x23]
jmp 0x5d4b52
add ebx, 0x24
mov esi, ecx
mov ecx, dword [esp + 0x368]
mov dword [esp + 0x6c], esi
lea edi, [esp + 0x31c]
mov esi, ebx
call fcn.00462df6
cmp dword [esp + 0x320], ebp
je 0x5d4d0f
mov ecx, dword [esp + 0x6c]
inc ecx
cmp edx, ecx
jg 0x5d4cd6
mov ecx, dword [esp + 0x368]
jmp 0x5d4c9f
lea edi, [esp + 0x28c]
lea esi, [esp + 0x31c]
call fcn.00462df6
jmp 0x5d4cab
mov eax, 3
mov ecx, edx
call fcn.00462740
mov eax, ebx
mov ecx, edx
call fcn.004627b0
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x627be0]
mov dword [esp + 8], eax
call fcn.00408df0
lea eax, [0x637580]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x65fac4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x62edc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004369c0
mov edi, dword [esp + 0x50]
lea ecx, [edi + 1]
mov eax, ebx
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x274]
mov esi, dword [esp + 0x30]
cmp ecx, esi
ja 0x5d502e
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x270], ebp
mov dword [esp + 0x44], eax
lea eax, [0x628460]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x2ac]
add edx, 0xfffffffc
mov ebx, dword [esp + 0x44]
cmp ebx, edx
jbe 0x5d4df8
mov edx, dword [0x854c78]
xor ebp, ebp
jmp 0x5d4e2f
mov edx, dword [ecx + 0x28c]
mov ebp, dword [ecx + 0x288]
mov esi, dword [ecx + 0x290]
cmp ebx, edx
ja 0x5d50cc
sub edx, ebx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
cmp edx, 3
jbe 0x5d50c0
mov ebp, dword [esi + ebp]
xor edx, edx
test edx, edx
jne 0x5d5003
mov dword [esp + 0x3c], ebp
mov edx, dword [esp + 0x78]
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5d4e5c
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x5d4ef9
mov dword [esp + 0x280], eax
mov dword [esp], ecx
lea ebp, [0x61c740]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea esi, [ebx + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.005d05a0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5d4fd8
mov ecx, dword [esp + 0x280]
movzx ecx, byte [ecx]
cmp cl, 1
je 0x5d4ea4
cmp cl, 2
jne 0x5d4edc
mov byte [esp + 0x23], cl
lea edi, [esp + 0x2b0]
xor eax, eax
call fcn.00462937
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0xbc]
mov ebx, dword [ecx + 0xb8]
test edx, edx
je 0x5d5039
mov ebp, dword [esp + 0x3c]
xor esi, esi
jmp 0x5d507e
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
mov esi, ecx
mov edi, eax
mov ecx, dword [esp + 0x368]
mov eax, edx
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x64]
cmp ebx, edx
jb 0x5d4f26
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x270]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x80]
jmp 0x5d4f8c
mov dword [esp + 0x26c], eax
mov dword [esp + 0x5c], edi
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
lea eax, [0x63cf80]
mov dword [esp], eax
mov ebp, dword [esp + 0x270]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044b2b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x60]
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x274], ebp
mov ebx, edx
mov ebp, dword [esp + 0x3c]
mov edx, eax
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ebx
shl ecx, 4
mov edx, dword [esp + 0x274]
mov dword [edx + ecx], ebp
xchg esi, eax
mov byte [edx + ecx + 4], al
xchg esi, eax
mov dword [edx + ecx + 0xc], edi
mov ebp, dword [0x87bd00]
lea edi, [edx + ecx + 8]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x44]
lea ebx, [ebx + esi + 4]
test ebp, ebp
jne 0x5d4fce
mov dword [edx + ecx + 8], eax
jmp 0x5d4d89
call fcn.004626c0
jmp 0x5d4d89
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, edx
mov ecx, ebx
mov esi, ebp
jmp 0x5d4c98
lea edi, [esp + 0x2b0]
call fcn.00462937
lea edi, [esp + 0x2f8]
lea esi, [esp + 0x2b0]
call fcn.00462df6
mov edx, dword [esp + 0x308]
mov ecx, dword [esp + 0x30c]
mov eax, ecx
movzx ecx, byte [esp + 0x23]
jmp 0x5d4ee0
add ebx, 0x24
mov esi, ecx
mov ecx, dword [esp + 0x368]
mov dword [esp + 0x6c], esi
lea edi, [esp + 0x340]
mov esi, ebx
call fcn.00462df6
cmp dword [esp + 0x344], ebp
je 0x5d50ab
mov ecx, dword [esp + 0x6c]
inc ecx
cmp edx, ecx
jg 0x5d5072
mov ecx, dword [esp + 0x368]
jmp 0x5d5039
lea edi, [esp + 0x2b0]
lea esi, [esp + 0x340]
call fcn.00462df6
jmp 0x5d5045
mov eax, 3
mov ecx, edx
call fcn.00462740
mov eax, ebx
mov ecx, edx
call fcn.004627b0
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x627be0]
mov dword [esp + 8], eax
call fcn.00408df0
lea eax, [0x637580]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x65fac4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x62edc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004369c0
lea eax, [0x637580]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x65fac4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x62edc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004369c0
lea eax, [0x637580]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x65fac4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x62edc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004369c0
nop
call fcn.004612b0
jmp fcn.005d45f0