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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x68]
cmp eax, dword [ecx + 8]
jbe 0x579094
sub esp, 0xe8
mov edx, dword [esp + 0xec]
mov ebx, dword [edx + 0x80]
mov ebp, dword [edx + 0x84]
mov esi, dword [edx + 0x88]
nop
lea edi, [ebx + 1]
mov dword [edx + 0x80], edi
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x54]
mov eax, dword [edx + 0x60]
cmp eax, ecx
jae 0x57908e
movzx ecx, byte [edi + eax]
test cl, 0x80
jne 0x578fc9
mov ecx, 1
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebx
add eax, ecx
mov dword [edx + 0x60], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
call fcn.005790a0
movzx eax, byte [esp + 0x14]
test al, al
je 0x578fba
mov dword [esp + 0x24], 0x4c4d4159
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
cmp ecx, 4
je 0x578f9c
xor eax, eax
test al, al
jne 0x578e72
mov word [esp + 0x21], 0x4154
mov byte [esp + 0x23], 0x47
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
cmp ecx, 3
jne 0x578dd1
mov dword [esp], edx
lea eax, [esp + 0x21]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00402890
movzx eax, byte [esp + 0xc]
test al, al
je 0x578dd1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
lea ebp, [esp + 0x4c]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x34]
mov dword [esp + 0x14], ebp
call fcn.00579920
movzx eax, byte [esp + 0x18]
test al, al
je 0x578dc2
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 0x84]
mov ebx, dword [ecx + 0x88]
mov ebp, dword [ecx + 0x80]
lea edi, [esp + 0x58]
lea esi, [0x63c5ac]
call fcn.0045e65c
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x5c], ecx
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebp
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebp
mov edi, dword [esp + 0xf0]
test byte [edi], al
mov edx, dword [0x770e60]
test edx, edx
jne 0x578d9b
mov edx, esi
lea esi, [esp + 0x58]
call fcn.0045e65c
mov ebx, dword [esp + 0xec]
cmp dword [ebx + 0x64], 1
jge 0x578848
jmp 0x578d5f
mov edx, edi
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x54]
mov esi, dword [ebx + 0x60]
cmp esi, ecx
jae 0x579087
movzx ebp, byte [ebp + esi]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jne 0x57891f
nop
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
mov ebp, dword [ebx + 0x64]
dec ebp
mov dword [ebx + 0x64], ebp
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
mov edi, edx
mov edx, dword [ebx + 0x60]
cmp edx, ecx
jae 0x579080
movzx esi, byte [esi + edx]
xchg esi, eax
test al, 0x80
xchg esi, eax
jne 0x5788e6
mov ecx, 1
add edx, ecx
mov dword [ebx + 0x60], edx
cmp ebp, 1
jge 0x578846
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x5788d7
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
jmp 0x578846
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
mov ecx, esi
and esi, 0xffffffe0
xchg esi, eax
cmp al, 0xc0
xchg esi, eax
jne 0x5788f9
mov ecx, 2
jmp 0x5788a0
mov esi, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x57890a
mov ecx, 3
jmp 0x5788a0
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x57891b
mov ecx, 4
jmp 0x5788a0
xor ecx, ecx
jmp 0x5788a0
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x578869
xchg ebp, eax
cmp al, 0x23
xchg ebp, eax
je 0x57893f
jmp 0x578d58
mov edx, edi
mov ebx, dword [esp + 0xec]
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x54]
mov esi, dword [ebx + 0x60]
cmp esi, ecx
jae 0x579079
mov edi, edx
movzx edx, byte [ebp + esi]
cmp dl, 0xd
je 0x578ab8
cmp dl, 0xa
je 0x578ab8
cmp dl, 0xc2
jne 0x578986
lea ebx, [esi + 1]
cmp ebx, ecx
jae 0x579072
lea ebx, [ebp + esi + 1]
cmp byte [ebx], 0x85
je 0x578ab8
cmp dl, 0xe2
jne 0x5789be
lea ebx, [esi + 1]
cmp ebx, ecx
jae 0x57906b
lea ebx, [ebp + esi + 1]
cmp byte [ebx], 0x80
jne 0x578d50
lea ebx, [esi + 2]
cmp ebx, ecx
jae 0x579064
lea ebx, [ebp + esi + 2]
cmp byte [ebx], 0xa8
je 0x578ab8
cmp dl, 0xe2
jne 0x5789ec
lea ebx, [esi + 1]
cmp ebx, ecx
jae 0x57905d
lea ebx, [ebp + esi + 1]
cmp byte [ebx], 0x80
jne 0x5789ec
lea ebx, [esi + 2]
cmp ebx, ecx
jae 0x579056
lea ebx, [ebp + esi + 2]
cmp byte [ebx], 0xa9
je 0x578ab8
test dl, dl
je 0x578ab8
nop
mov edx, dword [esp + 0xec]
inc dword [edx + 0x80]
inc dword [edx + 0x88]
mov ebx, dword [edx + 0x64]
dec ebx
mov dword [edx + 0x64], ebx
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x54]
mov esi, dword [edx + 0x60]
cmp esi, ecx
jae 0x57904f
movzx ebp, byte [ebp + esi]
xchg ebp, eax
test al, 0x80
xchg ebp, eax
jne 0x578a7c
mov ecx, 1
lea ebp, [ecx + esi]
mov dword [edx + 0x60], ebp
cmp ebx, 1
jge 0x578936
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x578a6d
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
jmp 0x578936
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
mov ecx, ebp
and ebp, 0xffffffe0
xchg ebp, eax
cmp al, 0xc0
xchg ebp, eax
jne 0x578a8f
mov ecx, 2
jmp 0x578a31
mov ebp, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x578aa0
mov ecx, 3
jmp 0x578a31
and ebp, 0xfffffff8
xchg ebp, eax
cmp al, 0xf0
xchg ebp, eax
jne 0x578ab1
mov ecx, 4
jmp 0x578a31
xor ecx, ecx
jmp 0x578a31
mov edx, dword [esp + 0xec]
mov ecx, dword [edx + 0x58]
mov ebx, dword [edx + 0x54]
mov ebp, dword [edx + 0x60]
cmp ebp, ecx
jae 0x579048
movzx esi, byte [ebx + ebp]
xchg esi, eax
cmp al, 0xd
xchg esi, eax
jne 0x578bcb
jne 0x578b2f
cmp dword [edx + 0x64], 2
jl 0x578afe
mov dword [esp], edx
call fcn.00574690
mov byte [esp + 0xf4], 1
add esp, 0xe8
ret
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x578b20
mov edx, dword [esp + 0xec]
jmp 0x578ae7
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x578ae1
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x578b51
lea eax, [ebp + 1]
cmp ecx, eax
jbe 0x579020
lea edi, [ebx + ebp + 1]
cmp byte [edi], 0x85
je 0x578ae1
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x578b89
lea eax, [ebp + 1]
cmp ecx, eax
jbe 0x57901b
lea edi, [ebx + ebp + 1]
cmp byte [edi], 0x80
jne 0x578bc4
lea eax, [ebp + 2]
cmp ecx, eax
jbe 0x579016
lea edi, [ebx + ebp + 2]
cmp byte [edi], 0xa8
je 0x578ae1
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x578aef
lea eax, [ebp + 1]
cmp ecx, eax
jbe 0x579011
lea esi, [ebx + ebp + 1]
cmp byte [esi], 0x80
jne 0x578aef
lea eax, [ebp + 2]
cmp ecx, eax
jbe 0x57900c
lea eax, [ebx + ebp + 2]
cmp byte [eax], 0xa9
je 0x578ae1
jmp 0x578aef
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jmp 0x578b89
xchg esi, eax
cmp al, 0xa
xchg esi, eax
jne 0x578bdc
xchg esi, eax
cmp al, 0xd
xchg esi, eax
jmp 0x578adf
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x578c08
lea edx, [ebp + 1]
cmp edx, ecx
jae 0x579041
lea edx, [ebx + ebp + 1]
cmp byte [edx], 0x85
jne 0x578c08
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov edx, dword [esp + 0xec]
jmp 0x578adf
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x578c51
lea edx, [ebp + 1]
cmp edx, ecx
jae 0x57903a
lea edx, [ebx + ebp + 1]
cmp byte [edx], 0x80
jne 0x578d46
lea edx, [ebp + 2]
cmp edx, ecx
jae 0x579033
lea edx, [ebx + ebp + 2]
cmp byte [edx], 0xa8
jne 0x578c4c
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov edx, dword [esp + 0xec]
jmp 0x578adf
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x578c8c
lea edx, [ebp + 1]
cmp edx, ecx
jae 0x57902c
lea edx, [ebx + ebp + 1]
cmp byte [edx], 0x80
jne 0x578c8c
lea edx, [ebp + 2]
cmp edx, ecx
jae 0x579025
lea edx, [ebx + ebp + 2]
cmp byte [edx], 0xa9
jne 0x578c8c
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov edx, dword [esp + 0xec]
jmp 0x578adf
xchg esi, eax
test al, al
xchg esi, eax
jne 0x578ca3
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov edx, dword [esp + 0xec]
jmp 0x578adf
nop
mov ecx, dword [esp + 0xec]
mov dword [ecx], 3
mov dword [ecx + 0x24], 0x1a
mov edx, dword [0x770e60]
test edx, edx
jne 0x578d2c
lea edx, [0x5f3dcd]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edi
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x30], edx
mov dword [ecx + 8], 0x2b
mov edx, dword [0x770e60]
test edx, edx
jne 0x578d1c
lea eax, [0x5f975d]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0x84]
mov edx, dword [ecx + 0x88]
mov ebx, dword [ecx + 0x80]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
lea edi, [ecx + 4]
lea eax, [0x5f975d]
call fcn.0045df70
jmp 0x578cf2
lea edx, [ecx + 0x20]
mov ebx, edi
mov edi, edx
mov ebp, eax
lea eax, [0x5f3dcd]
call fcn.0045df70
mov eax, ebp
mov edi, ebx
jmp 0x578ccb
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jmp 0x578c51
cmp dl, 0xe2
jmp 0x5789be
mov edi, edx
jmp 0x578ab8
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00571e80
movzx eax, byte [esp + 8]
test al, al
je 0x578d8c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xec]
jmp 0x578848
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
lea eax, [0x5dd120]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
call fcn.004106b0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x578834
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
nop
mov ecx, dword [esp + 0xec]
mov dword [ecx], 3
mov dword [ecx + 0x24], 0x1a
mov edx, dword [0x770e60]
test edx, edx
jne 0x578e62
lea edx, [0x5f3dcd]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x2c], edx
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x30], edx
mov dword [ecx + 8], 0x1c
mov edx, dword [0x770e60]
test edx, edx
jne 0x578e52
lea eax, [0x5f474c]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0x84]
mov edx, dword [ecx + 0x88]
mov ebx, dword [ecx + 0x80]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
lea edi, [ecx + 4]
lea eax, [0x5f474c]
call fcn.0045df70
jmp 0x578e28
lea edi, [ecx + 0x20]
lea eax, [0x5f3dcd]
call fcn.0045df70
jmp 0x578df9
mov byte [esp + 0x20], 0
mov byte [esp + 0x1f], 0
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
lea ebp, [esp + 0x20]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x1f]
mov dword [esp + 0x14], ebp
call fcn.00579380
movzx eax, byte [esp + 0x18]
test al, al
je 0x578f8d
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 0x84]
mov ebx, dword [ecx + 0x88]
mov ebp, dword [ecx + 0x80]
lea edi, [esp + 0xa0]
lea esi, [0x63c564]
call fcn.0045e65c
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xa4], ecx
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xa8], ecx
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ebx
movzx edx, byte [esp + 0x20]
mov byte [esp + 0xe5], dl
movzx edx, byte [esp + 0x1f]
mov byte [esp + 0xe6], dl
mov edi, dword [esp + 0xf0]
test byte [edi], al
mov edx, dword [0x770e60]
test edx, edx
jne 0x578f63
mov edx, esi
lea esi, [esp + 0xa0]
call fcn.0045e65c
jmp 0x578834
lea eax, [0x5dd120]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.004106b0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x578834
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
mov dword [esp], edx
lea eax, [esp + 0x24]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00402890
movzx eax, byte [esp + 0xc]
jmp 0x5786cc
mov byte [esp + 0xf4], 0
add esp, 0xe8
ret
mov edi, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x578fdd
mov ecx, 2
jmp 0x57865f
mov ecx, edi
and edi, 0xfffffff0
xchg edi, eax
cmp al, 0xe0
xchg edi, eax
jne 0x578ff3
mov ecx, 3
jmp 0x57865f
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x579005
mov ecx, 4
jmp 0x57865f
xor ecx, ecx
jmp 0x57865f
call fcn.0045dff0
call fcn.0045dff0
call fcn.0045dff0
call fcn.0045dff0
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, ebp
call fcn.0045dff0
mov eax, esi
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov eax, esi
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
mov eax, esi
call fcn.0045dff0
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.005785f0