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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x652a75
sub esp, 0x7c
mov edx, dword [esp + 0x88]
cmp edx, 0xa
jg 0x652538
cmp edx, 6
jne 0x6523e7
mov ebx, dword [esp + 0x84]
cmp dword [ebx], 0x76726553
jne 0x652659
cmp word [ebx + 4], 0x7265
jne 0x652659
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x58]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
cmp edx, 7
jne 0x652451
mov ebx, dword [esp + 0x84]
cmp dword [ebx], 0x69617254
jne 0x652659
cmp word [ebx + 4], 0x656c
jne 0x652659
cmp byte [ebx + 6], 0x72
jne 0x652659
mov edx, dword [0x7077ac]
mov dword [esp + 0x44], edx
mov ebx, dword [0x7077a8]
mov dword [esp + 0x68], ebx
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x48], ecx
mov ebp, dword [ebp + 0x74]
mov dword [esp + 0x6c], ebp
xor eax, eax
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
jmp 0x652916
cmp edx, 0xa
jne 0x65254b
mov eax, dword [esp + 0x84]
mov dword [esp], eax
lea ecx, [0x76a8e8]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
call fcn.00403310
movzx eax, byte [esp + 0xc]
test al, al
je 0x6524d3
mov edx, dword [esp + 0x80]
movzx ebx, byte [edx + 2]
test bl, bl
jne 0x6524a8
mov ebx, dword [edx + 0x68]
mov dword [esp + 0x74], ebx
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x50], ecx
xor eax, eax
jmp 0x652877
mov eax, dword [str.close]
mov ecx, dword [0x70787c]
mov edx, dword [0x707880]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
add esp, 0x7c
ret
mov eax, dword [esp + 0x84]
mov dword [esp], eax
lea ecx, [0x76aa96]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
call fcn.00403310
movzx eax, byte [esp + 0xc]
test al, al
jne 0x652510
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
jmp 0x652659
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0xa0]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 0x9c]
mov dword [esp + 0x64], edx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x652755
cmp edx, 0xc
je 0x652621
cmp edx, 0xe
je 0x6525be
cmp edx, 0x10
je 0x652557
mov ebx, dword [esp + 0x84]
jmp 0x652659
mov eax, dword [esp + 0x84]
mov dword [esp], eax
lea ecx, [0x76c670]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x10
call fcn.00403310
movzx eax, byte [esp + 0xc]
test al, al
jne 0x652594
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
jmp 0x652659
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
mov eax, dword [esp + 0x84]
mov dword [esp], eax
lea ecx, [0x76bb4f]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xe
call fcn.00403310
movzx eax, byte [esp + 0xc]
test al, al
jne 0x6525f8
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
jmp 0x652659
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
mov eax, dword [esp + 0x84]
mov dword [esp], eax
lea ecx, [0x76b108]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
call fcn.00403310
movzx eax, byte [esp + 0xc]
test al, al
jne 0x652672
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov esi, dword [ebp + 0x68]
mov dword [esp + 0x70], esi
mov ecx, dword [ebp + 0x6c]
mov dword [esp + 0x4c], ecx
xor eax, eax
jmp 0x6526bb
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x38]
mov ebx, dword [eax + 0x40]
movzx eax, byte [eax + 3]
test al, al
jne 0x6526a1
test ecx, ecx
jne 0x6526a1
mov edx, dword [str.text_plain__charsetutf_8]
mov ecx, dword [0x7076dc]
mov ebx, dword [0x7076e0]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ebx
add esp, 0x7c
ret
inc eax
cmp eax, ecx
jge 0x652729
jae 0x652748
imul ebp, eax, 0x1c
mov dword [esp + 0x58], ebp
mov edi, dword [ebp + esi + 4]
mov ebp, dword [ebp + esi]
cmp edx, edi
je 0x6526dc
xor ebp, ebp
jmp 0x652711
mov dword [esp + 0x20], eax
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.00403310
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x70]
mov ebp, eax
mov eax, dword [esp + 0x20]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6526ba
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + esi + 0xc]
mov edx, dword [eax + esi + 0x10]
mov eax, dword [eax + esi + 0x14]
jmp 0x65272f
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
add esp, 0x7c
ret
call fcn.00456b40
mov edi, dword [esp + 0x64]
mov ebp, edx
mov edx, edi
cmp eax, ecx
jge 0x652858
jae 0x652871
mov dword [esp + 0x28], eax
imul edi, eax, 0x1c
mov ecx, dword [edx + edi + 0x10]
lea eax, [ecx + ebp]
mov edi, dword [edx + edi + 0xc]
cmp ebx, eax
jae 0x6527bb
mov dword [esp + 0x34], ebp
mov dword [esp + 0x58], ecx
mov dword [esp + 0x78], edi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], esi
lea edx, [ebp + esi]
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
call fcn.00457450
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jle 0x652847
mov edx, dword [esp + 0x34]
add edx, 2
mov ebx, dword [esp + 0x3c]
cmp ebx, edx
jb 0x6527fd
mov esi, dword [esp + 0x60]
jmp 0x65283b
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
mov word [edx + esi - 2], 0x203b
jmp 0x65274d
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x60]
jmp 0x65274d
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebx
add esp, 0x7c
ret
call fcn.00456b40
inc eax
cmp eax, ecx
jge 0x6528da
jae 0x6528f9
imul edx, eax, 0x1c
mov ebp, dword [edx + ebx + 4]
mov esi, dword [edx + ebx]
cmp ebp, 0xa
je 0x652890
xor ebp, ebp
jmp 0x6528c6
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], edx
mov dword [esp], esi
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00403310
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x74]
mov ebp, eax
mov eax, dword [esp + 0x2c]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x652876
mov eax, dword [edx + ebx + 0xc]
mov ecx, dword [edx + ebx + 0x10]
mov edx, dword [edx + ebx + 0x14]
jmp 0x6528e0
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
add esp, 0x7c
ret
call fcn.00456b40
mov esi, dword [esp + 0x6c]
mov esi, ebx
mov edi, edx
mov dword [esp + 0x5c], ebp
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
cmp eax, ecx
jge 0x652a52
jae 0x652a6f
mov dword [esp + 0x24], eax
imul ebx, eax, 0x1c
mov edx, dword [ebp + ebx + 4]
lea ecx, [edx + edi]
mov ebx, dword [ebp + ebx]
cmp esi, ecx
jae 0x652984
mov dword [esp + 0x30], edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x78], ebx
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x5c]
lea ebp, [edi + eax]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00457450
mov eax, dword [esp + 0x24]
inc eax
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jg 0x6529c1
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
jmp 0x6528fe
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x38]
cmp esi, ebp
jb 0x6529de
mov edi, dword [esp + 0x5c]
jmp 0x652a16
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov edi, eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x5c], edi
lea eax, [edx + edi]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
jmp 0x6528fe
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], esi
add esp, 0x7c
ret
call fcn.00456b40
nop
call fcn.00455690
jmp fcn.00652370