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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x557eff
sub esp, 0x90
mov eax, dword [esp + 0x94]
cmp byte [eax + 0x49], 0xff
je 0x557e82
lea eax, [0x753330]
mov dword [esp], eax
call fcn.004673a0
mov eax, dword [esp + 8]
lea ecx, [0x5b37e0]
cmp dword [esp + 4], ecx
jne 0x557e6b
mov dword [esp + 0x60], eax
mov edx, dword [eax + 0x2c]
mov ecx, dword [esp + 0xb8]
cmp ecx, edx
jg 0x557e1c
ja 0x557ef9
mov dword [eax + 0x28], ecx
mov edx, dword [eax + 0x28]
xor ecx, ecx
jmp 0x5576f2
mov dword [ebp + ecx*4], 0xffffffff
inc ecx
cmp ecx, edx
jge 0x557705
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x24]
cmp ecx, ebx
jb 0x5576e9
jmp 0x557ef0
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x557d94
nop
mov ecx, dword [esp + 0x98]
mov dword [eax + 0x14], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x557d7c
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1c], 0
mov dword [eax + 0x20], 0
lea ecx, [eax + 0x14]
lea edx, [0x63b958]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], edx
mov eax, dword [edx + 0x20]
mov dword [esp], ecx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], ebx
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
cmp eax, 0xffffffff
jne 0x557d48
mov edx, 0xffffffff
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], edx
mov ebp, dword [esp + 0xb4]
test ebp, ebp
jne 0x557d10
nop
mov esi, eax
mov edi, 0xffffffff
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 0xc]
mov edx, dword [ebx + 0xc]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
cmp edx, ebp
jae 0x557ee7
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edi
lea ebp, [edx + edx*8]
lea ebx, [ebx + ebp*4]
mov ebp, edi
lea edi, [esp + 0x6c]
mov esi, ebx
call fcn.0045e6b6
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x557cdf
xor ebx, ebx
test bl, bl
je 0x557cd1
mov ebx, dword [esp + 0x94]
mov esi, ebx
mov ebx, dword [ebx + 0x28]
test ebx, ebx
jg 0x557c9d
xor ebx, ebx
test bl, bl
jne 0x557bc8
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
jmp 0x55783d
mov dword [esp + 0x58], eax
mov eax, edx
mov edx, ecx
mov ecx, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x24], ebx
mov ebx, dword [esi + 0xc]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ebp, edx
jbe 0x557ede
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x2c], edi
lea edx, [edx + edx*8]
lea edx, [ebx + edx*4]
mov ebx, edi
lea edi, [esp + 0x6c]
mov ebp, esi
mov esi, edx
call fcn.0045e6b6
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x54], ecx
movzx edx, byte [esp + 0x6c]
cmp dl, 5
ja 0x557ab5
mov dword [esp + 0x50], eax
cmp dl, 2
ja 0x557911
cmp dl, 1
jbe 0x5578d6
mov edx, dword [esp + 0x74]
mov esi, ebp
mov ebp, dword [esp + 0x60]
mov edi, ebx
mov ebx, dword [ebp + 0x28]
mov ebp, dword [ebp + 0x24]
cmp ebx, edx
jle 0x5578cd
jbe 0x557eaa
mov ebx, dword [esp + 0xb4]
mov dword [ebp + edx*4], ebx
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x24]
jmp 0x55782b
mov ebx, dword [esp + 0xb4]
jmp 0x5578c0
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
call fcn.00558540
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xb4]
jmp 0x55782b
cmp dl, 3
jne 0x557a71
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], cl
call fcn.00556530
movzx eax, byte [esp + 0xc]
test al, al
je 0x557962
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xb4]
jmp 0x55782b
xor eax, eax
test al, al
je 0x557a3d
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xc0]
lea ebx, [ecx + edx]
mov dword [esp + 0x4c], ebx
mov ebp, dword [eax + 0x24]
mov esi, dword [esp + 0xc4]
cmp esi, ebx
jb 0x5579f4
mov edi, dword [esp + 0xbc]
mov dword [esp + 0xc4], esi
mov dword [esp + 0xbc], edi
lea eax, [edi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ebp
shl ecx, 2
mov dword [esp + 8], ecx
call fcn.0045e900
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00557590
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd0], eax
add esp, 0x90
ret
mov dword [esp + 0x48], ecx
mov dword [esp + 0x68], ebp
lea eax, [0x5be280]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.004450a0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x68]
jmp 0x557996
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00557590
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0x90
ret
cmp dl, 4
jne 0x557aae
mov edx, dword [esp + 0x60]
mov ebx, dword [edx + 0x28]
mov ebp, dword [edx + 0x24]
test ebx, ebx
jle 0x557aa4
mov dword [ebp], 0
mov ecx, dword [edx + 0x28]
mov ebx, dword [edx + 0x24]
cmp ecx, 1
jbe 0x557ebc
mov eax, dword [esp + 0xb4]
mov dword [ebx + 4], eax
mov eax, 1
jmp 0x557964
xor eax, eax
jmp 0x557964
cmp dl, 7
ja 0x557b79
cmp dl, 6
jne 0x557adb
mov esi, ebp
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x24]
mov edi, ebx
mov ebx, dword [esp + 0xb4]
jmp 0x55782b
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00551790
cmp dword [esp + 8], 0xffffffff
je 0x557b72
mov edx, dword [esp + 0x24]
test edx, edx
je 0x557b6b
mov ebx, dword [esp + 0xb4]
add edx, ebx
mov ebx, dword [esp + 0x2c]
cmp ebx, 0xffffffff
jne 0x557b3a
mov eax, ebx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x20]
mov edi, ebx
mov ebx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x34], eax
jmp 0x55782b
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
mov ebp, dword [esp + 0x20]
lea esi, [edx + ebp]
mov dword [esp + 4], esi
call ecx
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
jmp 0x557b16
xor eax, eax
jmp 0x557964
xor eax, eax
jmp 0x557964
cmp dl, 8
jne 0x557ba2
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
test edx, edx
jbe 0x557eb3
mov edx, dword [esp + 0x34]
cmp dword [ebp], edx
je 0x557af6
xor eax, eax
jmp 0x557964
cmp dl, 9
je 0x557af6
cmp dl, 0xa
jne 0x557ec6
mov edx, dword [esp + 0x34]
cmp edx, 0xa
jne 0x557af6
xor eax, eax
jmp 0x557964
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
mov dword [esp + 4], esi
call ecx
movzx eax, byte [esp + 8]
test al, al
je 0x557c96
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x20]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
mov esi, dword [esp + 0xb4]
add ecx, esi
mov dword [esp + 0xb4], ecx
mov dword [esp + 4], ecx
call ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x20]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
mov esi, dword [esp + 0xb4]
lea edi, [esi + eax]
mov dword [esp + 4], edi
call ebx
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x14]
mov ebp, dword [esp + 0x64]
mov dword [esp], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], esi
call ebx
mov esi, dword [esp + 0x94]
mov edx, dword [esi + 0x3c]
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0xb4]
jmp 0x55783d
xor eax, eax
jmp 0x557964
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
call ecx
movzx ebx, byte [esp + 4]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x94]
jmp 0x55780d
mov esi, dword [esp + 0x94]
xor ebx, ebx
jmp 0x55780d
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ebp
mov dword [esp], eax
mov byte [esp + 8], cl
call fcn.00556530
movzx ebx, byte [esp + 0xc]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x44]
jmp 0x5577ef
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x64]
mov dword [esp], edx
mov dword [esp + 4], ebp
call ecx
mov eax, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0x28]
jmp 0x5577a5
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x20]
mov ebx, dword [esp + 0x64]
mov dword [esp], ebx
mov ebp, dword [esp + 0xb4]
lea esi, [ebp + ecx]
mov dword [esp + 4], esi
call edx
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
jmp 0x557786
lea edi, [eax + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x9c]
call fcn.0045df70
mov eax, ecx
jmp 0x557737
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x557dda
nop
mov edx, dword [esp + 0xa4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa8]
mov dword [eax + 8], edx
mov edx, dword [0x770e60]
test edx, edx
jne 0x557dcd
mov dword [eax], ecx
lea edx, [0x63b934]
mov ecx, eax
jmp 0x55774b
mov edi, eax
mov eax, ecx
call fcn.0045df70
mov eax, edi
jmp 0x557dc0
nop
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x557e07
mov ecx, dword [esp + 0xac]
mov dword [eax + 0xc], ecx
lea ecx, [eax + 0xc]
lea edx, [0x63b97c]
jmp 0x55774b
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xac]
call fcn.0045df70
mov eax, ecx
jmp 0x557df9
lea eax, [0x5be280]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00444f30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x60]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x557e5b
mov dword [edi + 0x24], eax
mov eax, edi
jmp 0x5576e2
lea edx, [edi + 0x24]
mov ecx, edi
mov edi, edx
call fcn.0045df70
mov edi, ecx
jmp 0x557e54
lea eax, [0x5cab20]
mov dword [esp], eax
call fcn.0040b8e0
mov eax, dword [esp + 4]
jmp 0x5576c3
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0x90
ret
mov eax, edx
mov ecx, ebx
call fcn.0045e000
xor eax, eax
mov ecx, edx
call fcn.0045dff0
mov eax, 1
call fcn.0045dff0
lea eax, [0x5beac0]
mov dword [esp], eax
lea eax, [0x637eb8]
mov dword [esp + 4], eax
call fcn.00431a00
mov eax, edx
mov ecx, ebp
call fcn.0045dff0
mov eax, edx
mov ecx, ebp
call fcn.0045dff0
mov eax, ecx
mov ecx, ebx
call fcn.0045dff0
call fcn.0045e030
nop
call fcn.0045ca10
jmp fcn.00557670