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

Disassembly:
mov ecx, dword [0x95eda0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x658401
sub esp, 0xc0
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.00655970
lea edi, [esp + 0xac]
lea esi, [esp + 4]
call fcn.00471f3e
nop
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x6c]
lea edi, [esp + 0x84]
lea esi, [esp + 0xac]
call fcn.00471f3e
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x40], edx
lea ebx, [0x6de100]
mov dword [esp], ebx
call fcn.0040c000
mov eax, dword [0x95f020]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x657a06
mov eax, dword [esp + 0xc4]
jmp 0x657a14
call fcn.004717c0
mov eax, dword [esp + 0xc4]
mov dword [edi], eax
mov dword [esp + 0x58], ecx
mov dword [ecx + 8], eax
mov dword [ecx], 0xe
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x14], 0
mov dword [esp], eax
call fcn.00655970
lea edi, [esp + 0xac]
lea esi, [esp + 4]
call fcn.00471f3e
nop
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x6c]
lea edi, [esp + 0x5c]
lea esi, [esp + 0xac]
call fcn.00471f3e
cmp dword [esp + 0x5c], 0x15
jne 0x658237
mov edx, dword [eax + 0x6c]
nop
test edx, edx
jle 0x657a90
dec edx
mov dword [eax + 0x6c], edx
jmp 0x657b04
mov ecx, dword [eax + 0x2c]
mov dword [esp], ecx
call fcn.0064edc0
lea edi, [esp + 0xac]
lea esi, [esp + 4]
call fcn.00471f3e
mov eax, dword [0x95f020]
mov ecx, dword [esp + 0xc4]
lea edi, [ecx + 0x30]
test eax, eax
je 0x657af1
mov dword [esp + 0xa0], edi
lea eax, [0x6d3500]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xac]
call fcn.00471f3e
mov eax, dword [esp + 0xc4]
mov edx, dword [eax + 0x6c]
cmp edx, 3
jae 0x6583f4
mov dword [esp], eax
call fcn.006558a0
lea edi, [esp + 0x70]
lea esi, [esp + 4]
call fcn.00471f3e
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.00655970
lea edi, [esp + 0x84]
lea esi, [esp + 4]
call fcn.00471f3e
nop
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x6c]
lea edi, [esp + 0xac]
lea esi, [esp + 0x84]
call fcn.00471f3e
mov ecx, dword [esp + 0xac]
cmp ecx, 6
je 0x65801c
cmp ecx, 7
je 0x658019
cmp ecx, 2
jne 0x657f09
cmp dword [esp + 0xb8], 1
jne 0x657f09
mov ecx, dword [esp + 0xb4]
cmp byte [ecx], 0x2c
jne 0x657f09
mov dword [esp], eax
call fcn.00655970
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x7609a0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004b7aa0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
lea ebx, [0x6d6b00]
mov dword [esp], ebx
call fcn.0040c000
mov eax, dword [0x95f020]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x657c25
mov eax, dword [esp + 0xc4]
jmp 0x657c33
call fcn.004717c0
mov eax, dword [esp + 0xc4]
mov dword [edi], eax
mov dword [ecx + 8], eax
mov dword [ecx], 0x12
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x14], edx
mov edx, dword [0x95f020]
test edx, edx
jne 0x657c61
mov edx, dword [esp + 0x48]
jmp 0x657c6c
call fcn.004717c0
mov edx, dword [esp + 0x48]
mov dword [edi], edx
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
inc ebp
mov esi, dword [edx + 0x14]
cmp ebx, ebp
jae 0x657ce5
mov dword [esp + 0x50], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6d9300]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x1c], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x657cd1
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0xc4]
mov ebp, edx
mov esi, ecx
mov ecx, dword [esp + 0x50]
mov edx, ebx
mov dword [edx + 0x18], ebp
mov ebx, dword [0x95f020]
test ebx, ebx
je 0x657d00
call fcn.004717d0
mov dword [edi], ecx
mov ebx, dword [esi + ebp*4 - 4]
mov dword [edi + 4], ebx
mov dword [esi + ebp*4 - 4], ecx
mov ecx, dword [eax + 0x78]
mov ebx, dword [eax + 0x74]
inc ebx
mov ebp, dword [eax + 0x70]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
cmp ecx, ebx
jae 0x657d8c
mov dword [esp + 0x44], edi
mov dword [esp + 0x9c], esi
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6a7120]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc4]
mov dword [ebx + 0x78], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x657d74
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx + 0x70]
mov dword [edi + 4], eax
mov dword [ebx + 0x70], ecx
mov eax, ebx
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x44]
mov ebx, edx
mov ebp, ecx
mov edx, dword [esp + 0x58]
mov dword [eax + 0x74], ebx
lea ecx, [ebp + ebx*8 - 4]
mov dword [ecx], edi
mov ecx, dword [0x95f020]
lea ebx, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x657daf
call fcn.004717d0
mov dword [edi], esi
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
mov dword [ebx], esi
mov ecx, dword [esp + 0xcc]
cmp ecx, 5
jne 0x657e7c
mov ebx, dword [esp + 0xc8]
cmp dword [ebx], 0x676e6172
jne 0x657e83
cmp byte [ebx + 4], 0x65
jne 0x657e83
cmp dword [edx + 0x18], 2
jge 0x657e83
mov dword [esp], eax
call fcn.00655970
lea edi, [esp + 0xac]
lea esi, [esp + 4]
call fcn.00471f3e
nop
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x6c]
lea edi, [esp + 0x84]
lea esi, [esp + 0xac]
call fcn.00471f3e
mov ecx, dword [esp + 0x84]
lea edx, [ecx - 0x10]
cmp edx, 1
jbe 0x657a44
cmp ecx, 0x15
je 0x657a44
mov dword [esp], eax
lea ecx, [0x70750e]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x23
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.00655a50
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
jmp 0x657e83
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.004663d0
mov eax, dword [esp + 8]
lea ecx, [0x6a7120]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
lea ecx, [0x703934]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1b
lea ecx, [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.00655a50
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x58]
jmp 0x658244
cmp dword [esp + 0x70], 0x12
jne 0x657fc4
lea edi, [esp + 0xac]
lea esi, [esp + 0x5c]
call fcn.00471f3e
mov ecx, dword [0x95f020]
lea edi, [eax + 0x44]
test ecx, ecx
je 0x657f60
mov dword [esp + 0xa0], edi
lea eax, [0x6d3500]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esp + 0x70]
mov dword [esp + 8], ecx
call fcn.0040ed00
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x70]
call fcn.00471f3e
mov ecx, dword [0x95f020]
lea edi, [eax + 0x58]
test ecx, ecx
je 0x657fa8
mov dword [esp + 0xa0], edi
lea eax, [0x6d3500]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
call fcn.0040ed00
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xac]
call fcn.00471f3e
mov dword [eax + 0x6c], 3
mov edx, dword [esp + 0x58]
jmp 0x658244
mov ecx, dword [0x95f020]
lea edi, [eax + 0x44]
test ecx, ecx
je 0x658000
mov dword [esp + 0xa0], edi
lea eax, [0x6d3500]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0040ed00
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x5c]
call fcn.00471f3e
mov dword [eax + 0x6c], 2
mov edx, dword [esp + 0x58]
jmp 0x658244
cmp ecx, 6
sete cl
mov edx, dword [esp + 0x58]
mov byte [edx + 0x10], cl
mov dword [esp], eax
call fcn.00655970
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x38], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x7609a0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004b7aa0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
lea ebx, [0x6d6b00]
mov dword [esp], ebx
call fcn.0040c000
mov eax, dword [0x95f020]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x6580a9
mov eax, dword [esp + 0xc4]
jmp 0x6580b7
call fcn.004717c0
mov eax, dword [esp + 0xc4]
mov dword [edi], eax
mov dword [ecx + 8], eax
mov dword [ecx], 0x12
mov edx, dword [esp + 0x38]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x14], edx
mov edx, dword [0x95f020]
test edx, edx
jne 0x6580e5
mov edx, dword [esp + 0x4c]
jmp 0x6580f0
call fcn.004717c0
mov edx, dword [esp + 0x4c]
mov dword [edi], edx
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
inc ebp
mov esi, dword [edx + 0x14]
cmp ebx, ebp
jae 0x658169
mov dword [esp + 0x54], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6d9300]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x1c], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x658155
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx + 0x14]
mov dword [edi + 4], eax
mov dword [ebx + 0x14], ecx
mov eax, dword [esp + 0xc4]
mov ebp, edx
mov esi, ecx
mov ecx, dword [esp + 0x54]
mov edx, ebx
mov dword [edx + 0x18], ebp
mov ebx, dword [0x95f020]
test ebx, ebx
je 0x658184
call fcn.004717d0
mov dword [edi], ecx
mov ebx, dword [esi + ebp*4 - 4]
mov dword [edi + 4], ebx
mov dword [esi + ebp*4 - 4], ecx
mov ecx, dword [eax + 0x78]
mov ebx, dword [eax + 0x74]
inc ebx
mov ebp, dword [eax + 0x70]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
cmp ecx, ebx
jae 0x658210
mov dword [esp + 0x44], edi
mov dword [esp + 0x9c], esi
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6a7120]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc4]
mov dword [ebx + 0x78], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x6581f8
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx + 0x70]
mov dword [edi + 4], eax
mov dword [ebx + 0x70], ecx
mov eax, ebx
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x44]
mov ebx, edx
mov ebp, ecx
mov edx, dword [esp + 0x58]
mov dword [eax + 0x74], ebx
lea ecx, [ebp + ebx*8 - 4]
mov dword [ecx], edi
mov ecx, dword [0x95f020]
lea ebx, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x658233
call fcn.004717d0
mov dword [edi], esi
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
mov dword [ebx], esi
jmp 0x658244
mov edx, dword [esp + 0x58]
jmp 0x658244
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.00655970
lea edi, [esp + 0xac]
lea esi, [esp + 4]
call fcn.00471f3e
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xd0]
cmp ecx, eax
je 0x6583b5
cmp eax, 0xd
jg 0x6582a2
cmp eax, 3
jg 0x65828b
cmp eax, 1
je 0x6582c9
cmp eax, 3
je 0x6582c9
jmp 0x658377
cmp eax, 5
je 0x6582c9
lea edx, [eax - 9]
cmp edx, 1
jbe 0x6582c9
cmp eax, 0xc
jge 0x6582c9
jmp 0x658377
cmp eax, 0x13
jg 0x6582b6
cmp eax, 0xf
je 0x6582c9
cmp eax, 0x13
je 0x6582c9
jmp 0x658377
cmp eax, 0x15
je 0x6582c9
cmp eax, 0x1a
je 0x6582c9
cmp eax, 0x1f
jne 0x658377
nop
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x6c]
mov dword [esp], eax
call fcn.00659660
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x24]
inc edx
mov ebx, dword [esp + 4]
mov ebp, dword [eax + 0x20]
cmp ecx, edx
jae 0x658353
mov dword [esp + 0x98], ebx
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6dc3c0]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x28], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x658345
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx + 0x20]
mov dword [edi + 4], eax
mov dword [ebx + 0x20], ecx
mov eax, ebx
mov ebx, dword [esp + 0x98]
mov ebp, ecx
mov dword [eax + 0x24], edx
mov ecx, dword [0x95f020]
test ecx, ecx
je 0x65836e
call fcn.004717d0
mov dword [edi], ebx
mov ecx, dword [ebp + edx*4 - 4]
mov dword [edi + 4], ecx
mov dword [ebp + edx*4 - 4], ebx
jmp 0x65823d
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0xac]
call fcn.00471f3e
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x1c], edx
call fcn.00655cb0
mov eax, dword [esp + 0x58]
jmp 0x65823d
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xc8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xc], ecx
call fcn.00658410
mov eax, dword [esp + 0x58]
mov dword [esp + 0xd4], eax
add esp, 0xc0
ret
mov eax, edx
mov ecx, 3
call fcn.00471840
nop
call fcn.004703c0
jmp fcn.00657970