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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
cmp dword [edx], 2
mov dword [esp + 0x64], ecx
jne 0x626537
mov edx, dword [edx + 4]
mov esi, dword [edx + 0x3c]
mov ecx, dword [edx + 0x44]
xor ebx, ebx
mov edx, esi
mov edi, ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], ebx
mov dword [esp + 4], esi
cmp edi, 8
jae 0x626594
test edi, edi
je 0x6265ab
xor eax, eax
cmp byte [edx + eax], 0
je 0x6265b1
inc eax
cmp edi, eax
jne 0x626587
jmp 0x6265ad
mov esi, ecx
xor ecx, ecx
push edi
call fcn.004aaa80
mov ecx, esi
mov esi, dword [esp + 8]
add esp, 4
mov edi, edx
jmp 0x6265b6
xor edi, edi
xor eax, eax
jmp 0x6265b6
mov edi, eax
xor eax, eax
inc eax
cmp eax, 1
jne 0x6265d9
add edi, ebx
mov ebx, edi
inc ebx
je 0x6265d0
cmp ecx, ebx
jb 0x6265d0
cmp byte [esi + edi], 0
je 0x626c53
mov edi, ecx
lea edx, [esi + ebx]
sub edi, ebx
jae 0x62657c
mov ebx, ecx
mov dword [esp + 0x48], ecx
call fcn.0059c336
mov edi, eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], eax
push ebx
push esi
push eax
call fcn.0064a810
add esp, 0xc
xor ebx, ebx
inc ebx
mov ecx, ebx
call fcn.0059c336
mov ecx, ebx
mov esi, eax
mov dword [esp + 0x5c], edx
mov byte [eax], 0x2f
call fcn.0059c336
mov dword [esp + 0x4c], eax
mov byte [eax], 0x5c
lea eax, [esp + 0x80]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], edi
mov edx, edi
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
xor eax, eax
lea ebx, [esp + 0xa0]
inc eax
mov ecx, ebx
push eax
mov dword [esp + 0x54], esi
push esi
push dword [esp + 0x50]
call fcn.004aad00
add esp, 0xc
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x24]
mov esi, dword [ebx + 0x38]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x24], 0
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 8], edx
mov edx, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x3c]
mov esi, eax
mov dword [esp + 0x68], eax
mov byte [esp + 3], al
mov eax, ebx
lea eax, [ebx - 1]
mov dword [esp + 4], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], ebx
and esi, 0xffffff00
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], esi
mov esi, ebx
sub esi, ecx
mov dword [esp + 0x6c], esi
xor esi, esi
xor eax, eax
inc esi
cmp dword [esp + 0x78], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], esi
je 0x6268c7
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 8]
add eax, edi
cmp eax, dword [esp + 4]
jae 0x626a40
movzx ecx, byte [esp + 3]
mov edx, dword [esp + 0x18]
or ecx, dword [esp + 0x74]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], ecx
mov cl, byte [ebx + eax]
xor eax, eax
xor edx, edx
inc edx
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x2c]
and edx, dword [esp + 0x7c]
or edx, eax
je 0x6267d4
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp ecx, eax
cmova eax, ecx
cmp dword [esp + 0x18], 0xffffffff
cmove eax, ecx
cmp eax, dword [esp + 0x14]
jae 0x62677f
mov ecx, dword [esp + 8]
lea edx, [ecx + edi]
lea ecx, [edi + eax]
cmp ecx, dword [esp + 4]
jae 0x626cc0
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + eax]
cmp cl, byte [edx + eax]
jne 0x6267f5
inc eax
cmp dword [esp + 0x14], eax
jne 0x62675f
cmp dword [esp + 0x18], 0xffffffff
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
cmove edx, ebx
cmp edx, ecx
jae 0x626827
dec ecx
cmp ecx, dword [esp + 0x14]
jae 0x626ca8
lea eax, [ecx + edi]
cmp eax, dword [esp + 4]
jae 0x626cb3
mov esi, dword [esp + 0x30]
mov bl, byte [esi + ecx]
mov esi, dword [esp + 8]
cmp bl, byte [esi + eax]
mov ebx, dword [esp + 8]
je 0x62678f
add edi, dword [esp + 0x70]
cmp dword [esp + 0x18], 0xffffffff
mov ecx, dword [esp + 0x6c]
jne 0x62680a
jmp 0x626812
add edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 0xffffffff
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmovne eax, ecx
cmovne edx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edx
jmp 0x626812
sub edi, dword [esp + 0x40]
xor ecx, ecx
cmp dword [esp + 0x18], 0xffffffff
mov ebx, dword [esp + 8]
lea edi, [edi + eax + 1]
je 0x626812
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x3c]
add eax, edi
cmp eax, dword [esp + 4]
jb 0x626710
jmp 0x626a40
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], 0xffffffff
mov ecx, dword [esp + 0x28]
mov esi, 0
cmovne ecx, esi
lea edx, [edi + eax]
mov esi, edi
mov dword [esp + 0x10], edx
mov edi, edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x38]
mov eax, edx
sub esi, ecx
sub eax, dword [esp + 0x24]
mov dword [esp + 0x28], esi
cmp eax, esi
jb 0x6269e6
mov esi, dword [esp + 0x44]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x44], esi
add ecx, dword [esp + 0x34]
lea eax, [esi + ebx]
mov esi, dword [esp + 0x28]
push esi
push ecx
push eax
call fcn.0064a810
add esp, 0xc
mov edx, dword [esp + 0x2c]
add ebx, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x88], ebx
cmp edx, ebx
je 0x626a1c
mov eax, dword [esp + 0x4c]
mov al, byte [eax]
mov byte [esi + ebx], al
mov eax, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x88], ebx
jmp 0x6266d0
test dword [esp + 0x68], 0xff0000
mov esi, dword [esp + 8]
jne 0x626a40
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 4]
test ecx, ecx
je 0x6268fe
mov eax, dword [esp + 4]
sub eax, ecx
jbe 0x6268f8
cmp byte [esi + ecx], 0xbf
jg 0x6268fe
jmp 0x626cd3
jne 0x626cd3
test eax, eax
je 0x6269ad
mov dl, byte [esi + ecx]
movzx eax, dl
test dl, dl
js 0x626914
mov edx, ecx
jmp 0x626967
movzx ebx, byte [esi + ecx + 1]
and eax, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x626955
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + ecx + 2]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
cmp dl, 0xf0
jb 0x62695e
mov ebx, dword [esp + 0x1c]
and eax, 7
shl ecx, 6
shl eax, 0x12
mov edx, ebx
movzx ebx, byte [esi + ebx + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x62695a
mov edx, ecx
shl eax, 6
or eax, ebx
jmp 0x626967
mov edx, dword [esp + 0x1c]
shl eax, 0xc
or eax, ecx
mov cl, byte [esp + 3]
test cl, cl
jne 0x6269d0
cmp eax, 0x110000
je 0x626a40
cmp eax, 0x80
mov ecx, 1
jb 0x62699f
mov ecx, 2
cmp eax, 0x800
jb 0x62699f
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add edx, ecx
mov byte [esp + 3], 1
mov ecx, edx
jmp 0x6268dd
cmp byte [esp + 3], 0
mov dword [esp + 0x1c], ecx
je 0x626a40
mov eax, dword [esp + 0x1c]
xor byte [esp + 3], 1
mov dword [esp + 0x10], eax
mov esi, eax
jmp 0x62684b
xor cl, 1
mov esi, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], edx
mov byte [esp + 3], cl
jmp 0x62684b
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x80]
push esi
call fcn.00655584
mov ecx, dword [esp + 0x3c]
add esp, 4
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x24], eax
jmp 0x62686e
lea ecx, [esp + 0x80]
push 1
call fcn.00655584
add esp, 4
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x88]
jmp 0x6268a9
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x24]
sub ecx, eax
add dword [esp + 0x34], eax
mov eax, edx
sub eax, esi
mov edi, ecx
cmp eax, ecx
jb 0x626c68
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x80]
lea eax, [ebx + esi]
push ecx
push dword [esp + 0x38]
push eax
call fcn.0064a810
add esp, 0xc
cmp dword [esp + 0x58], 0
je 0x626a9c
push dword [esp + 0x4c]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
add esi, edi
cmp dword [esp + 0x5c], 0
je 0x626ab7
push dword [esp + 0x50]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x80]
mov dword [esp + 0x30], ebx
mov edx, ebx
push esi
call fcn.005b2550
add esp, 4
xor eax, eax
lea edi, [esp + 0xb1]
mov bl, 1
xor esi, esi
mov dword [esp + 4], 0
inc eax
mov dword [esp + 8], eax
lea ecx, [esp + 0xe0]
lea edx, [esp + 0x80]
call fcn.005a8e90
mov al, byte [esp + 0xe0]
cmp al, 0xa
je 0x626bf2
cmp al, 9
jne 0x626bc9
mov eax, dword [esp + 8]
lea ecx, [esp + 0xe1]
mov edx, dword [ecx + 0x17]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
mov al, byte [esp + 0xe]
mov dword [esp + 0xa8], esi
mov byte [esp + 0xac], bl
mov byte [edi - 2], al
movzx eax, word [esp + 0xc]
mov word [edi - 4], ax
mov byte [esp + 0xb0], 9
mov dword [edi + 0x17], edx
movsd qword [edi + 0x10], xmm0
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm2
mov edx, dword [esp + 0xb4]
push dword [esp + 0xb8]
call fcn.005ae620
add esp, 4
mov eax, dword [esp + 0xa0]
movzx edx, word [edi - 4]
mov cl, byte [edi - 2]
mov esi, dword [esp + 0xa8]
mov bl, byte [esp + 0xac]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov word [esp + 0x20], dx
mov byte [esp + 0x22], cl
mov dword [esp + 4], eax
jmp 0x626bdb
mov al, byte [esp + 0xe]
movzx ecx, word [esp + 0xc]
mov byte [esp + 0x22], al
mov word [esp + 0x20], cx
mov al, byte [esp + 0x22]
movzx ecx, word [esp + 0x20]
mov byte [esp + 0xe], al
mov word [esp + 0xc], cx
jmp 0x626ae7
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 8]
mov edi, dword [esp + 4]
cmp dword [esp + 0x14], 0
mov dl, byte [esp + 0xe]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
movzx esi, word [esp + 0xc]
mov byte [ecx + 0xc], bl
mov byte [ecx + 0xf], dl
mov word [ecx + 0xd], si
je 0x626c32
push dword [esp + 0x30]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x60], 0
je 0x626c4b
push dword [esp + 0x54]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test edi, edi
je 0x626c8d
cmp ecx, edi
jbe 0x626c94
cmp byte [esi + edi], 0xbf
jle 0x626c9a
mov ecx, edi
jmp 0x6265d9
mov edx, esi
lea esi, [esp + 0x80]
mov ecx, esi
push edi
call fcn.00655584
mov ecx, edi
add esp, 4
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
mov dword [esp + 0x14], eax
jmp 0x626a6b
xor ecx, ecx
jmp 0x6265d9
je 0x6265d9
mov edx, ecx
mov ecx, esi
push 0x7f6268
push edi
push 0
jmp 0x626ce2
mov edx, dword [esp + 0x14]
push 0x7f5ac4
jmp 0x626cc9
mov edx, dword [esp + 4]
mov ecx, eax
push 0x7f5ad4
jmp 0x626cc9
mov edx, dword [esp + 4]
push 0x7f5ae4
call fcn.006521f0
add esp, 4
ud2
mov edx, dword [esp + 4]
mov eax, ecx
mov ecx, esi
push 0x7f5d70
push edx
push eax
call fcn.00652800
add esp, 0xc
ud2