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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x5f3ef530]
xor eax, esp
mov dword [esp + 0x240], eax
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [esp + 0x30], ecx
push esi
push edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], ebx
cmp dword [ecx + 8], ebx
je 0x635067
xor eax, eax
jmp 0x635a2e
mov ecx, dword [ecx + 0xc]
call fcn.0062c49d
mov edi, eax
push ebx
mov dword [esp + 0x2c], edi
call dword [0x5f3faad4]
test eax, eax
js 0x635060
lea eax, [esp + 0x4c]
push eax
push 0x5f390418
push 1
push ebx
push 0x5f390458
call dword [0x5f3faabc]
test eax, eax
jns 0x6350a4
call dword [0x5f3faab8]
jmp 0x635060
mov esi, 0xc8
lea eax, [esp + 0xa0]
push esi
push ebx
push eax
call fcn.0065ba13
push esi
lea eax, [esp + 0x190]
push ebx
push eax
call fcn.0065ba13
mov esi, ebx
mov edx, ebx
mov ebx, dword [ebp + 0xc]
add esp, 0x18
test bl, 1
je 0x6350e0
mov esi, 0x80000001
mov edx, 0x1002
mov ecx, 0x200
mov eax, 0x80000006
test ecx, ebx
je 0x635106
or edx, ecx
or esi, eax
test ebx, 0x4000
je 0x635106
or esi, 0x80000008
or edx, 0x800
test bl, 0x40
je 0x635112
or edx, 4
or esi, eax
jmp 0x635118
or esi, 0x80008000
test bl, 2
je 0x635122
or esi, eax
or edx, 4
test ebx, 0x116
je 0x635153
test bl, 8
je 0x635139
test edi, edi
je 0x63513f
or esi, 0x80000020
or edx, 0x2a0
test ebx, 0x4000
je 0x635153
or esi, 0x80000008
or edx, 0x800
mov eax, ebx
and eax, 0xb
cmp al, 3
je 0x635160
test bl, bl
jns 0x635169
or esi, 0x80020000
or edx, 8
push 7
pop ecx
xor eax, eax
mov dword [esp + 0x84], 0x5f39328c
lea edi, [esp + 0x68]
mov dword [esp + 0x88], 0x5f3932a0
rep stosd dword es:[edi], eax
push 2
pop edi
lea eax, [esp + 0x84]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
mov eax, 0x2000
mov dword [esp + 0xf4], 1
mov dword [esp + 0xf8], edi
mov dword [esp + 0xfc], edx
mov dword [esp + 0x108], esi
mov dword [esp + 0xa4], 6
mov dword [esp + 0xa8], 0x4c3
push 0x28
pop ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xa0], ecx
test eax, ebx
je 0x63520d
cmp dword [esp + 0x28], 0
jne 0x63520d
mov eax, edx
mov dword [esp + 0xb4], edx
and eax, 0xfffffdff
mov dword [esp + 0xb0], eax
jmp 0x635214
mov dword [esp + 0xac], edx
mov dword [esp + 0xb8], esi
mov eax, ebx
or esi, 0x80008008
mov dword [esp + 0xc8], ecx
push 0xa
mov dword [esp + 0xd4], edi
and eax, 0x400
mov dword [esp + 0xe4], esi
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x124], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x144], ecx
pop ecx
mov dword [esp + 0x148], edi
lea edi, [esp + 0x180]
mov dword [esp + 0x158], esi
lea esi, [esp + 0x118]
push 0xa
mov dword [esp + 0xd8], edx
mov dword [esp + 0x128], edx
mov dword [esp + 0x150], edx
mov dword [esp + 0xd0], 0x3e0
mov dword [esp + 0x120], 0x10
mov dword [esp + 0x148], 8
rep movsd dword es:[edi], dword [esi]
pop ecx
push 2
pop edx
push 3
mov dword [esp + 0x48], eax
lea esi, [esp + 0x144]
lea edi, [esp + 0x1ac]
mov dword [esp + 0x74], edx
pop eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x54], eax
je 0x6352f0
push 0xa
pop ecx
lea esi, [esp + 0xf0]
mov edx, eax
lea edi, [esp + 0x1d0]
mov dword [esp + 0x70], edx
rep movsd dword es:[edi], dword [esi]
test ebx, 0x800
je 0x635315
imul eax, edx, 0x28
lea edi, [esp + 0x180]
push 0xa
pop ecx
lea esi, [esp + 0xa0]
add edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x70], edx
test ebx, 0x1000
je 0x63533a
imul eax, edx, 0x28
lea edi, [esp + 0x180]
push 0xa
pop ecx
lea esi, [esp + 0xc8]
add edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x70], edx
shr ebx, 5
lea eax, [esp + 0x180]
xor edi, edi
mov dword [esp + 0x68], 0x1c
inc edi
mov dword [esp + 0x74], eax
not ebx
and ebx, edi
cmp dword [esp + 0x44], 0
mov dword [esp + 0x78], ebx
je 0x635370
cmp dword [esp + 0x28], 0
je 0x635370
or ebx, 2
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x38]
lea edx, [esp + 0x68]
push edx
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x5f3faadc]
call esi
test eax, eax
js 0x63509c
xor eax, eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
push ecx
push dword [esp + 0x44]
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x10]
call dword [0x5f3faadc]
call dword [esi + 0x10]
test eax, eax
js 0x6359e6
cmp dword [esp + 0x24], 0
je 0x6359e6
xor ebx, ebx
xor edi, edi
inc ebx
mov dword [esp + 0x5c], edi
push 0x5f3932b4
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], edi
call dword [0x5f3fa910]
or dword [esp + 0x98], 0xffffffff
lea ecx, [esp + 0x58]
mov word [esp + 0x8c], ax
mov eax, dword [esp + 0x24]
push ecx
mov dword [esp + 0x94], edi
lea ecx, [esp + 0x90]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa0], ebx
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0xc]
call dword [0x5f3faadc]
call dword [esi + 0xc]
test eax, eax
jns 0x635455
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x6359e2
push dword [esp + 0x5c]
call dword [0x5f3fa19c]
mov ecx, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x44], edi
cmp dword [eax], edi
jbe 0x635996
lea edx, [eax + 0x18]
mov dword [esp + 0x40], 0x13
mov dword [esp + 0x18], edx
mov edi, dword [edx - 0xc]
xor eax, eax
mov esi, eax
mov dword [esp + 0x3c], edi
mov eax, dword [edx]
add eax, 0x10
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
je 0x6356ed
mov ecx, 0x2011
cmp cx, word [eax]
mov ecx, dword [esp + 0x10]
jne 0x6356ed
lea ecx, [esp + 0x2c]
push ecx
push dword [eax + 8]
call dword [0x5f3fa7ec]
test eax, eax
js 0x6356e5
push dword [esp + 0x2c]
call dword [0x5f3fa078]
test eax, eax
je 0x6356d8
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x635521
push 6
pop ecx
lea edi, [esp + 0x168]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x34]
xor edi, edi
push eax
push 0x2000000
lea eax, [esp + 0x170]
push eax
push edi
call dword [0x5f3fa060]
test eax, eax
jne 0x63594d
mov eax, dword [esp + 0x34]
jmp 0x635523
xor edi, edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], edi
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
push ecx
lea ecx, [esp + 0x34]
push ecx
push ebx
push eax
call dword [0x5f3fa088]
test eax, eax
jne 0x6356b4
mov eax, dword [esp + 0x30]
cmp dword [eax], 5
jne 0x6356b4
mov esi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], edi
xor ecx, ecx
movzx edi, word [eax + 4]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], esi
test eax, eax
je 0x6355e8
cmp dword [eax], ecx
je 0x6355e8
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x6355e8
call fcn.00634c96
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x6355b2
mov ecx, dword [esp + 0x2c]
call fcn.00634ce6
mov ecx, eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x6355c5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
jmp 0x6355b7
mov esi, 0x5f393274
mov dword [esp + 0x14], esi
test ecx, ecx
jne 0x6355cb
cmp dword [esp + 0x48], ecx
jne 0x6355cb
xor eax, eax
mov edx, eax
jmp 0x6355e8
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x6355d0
sub ecx, edx
sar ecx, 1
lea edx, [ecx*2 + 2]
mov eax, dword [esp + 0x10]
add edi, 2
add edi, edx
test eax, eax
je 0x635641
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x6355fa
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
cmp eax, edi
jge 0x63564c
push 2
push edi
push dword [esp + 0x18]
call dword [0x5f3fa124]
test eax, eax
je 0x63562d
mov dword [esp + 0x10], eax
jmp 0x635650
push dword [esp + 0x10]
call dword [0x5f3fa1f4]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x10], eax
jmp 0x635652
push edi
push 0x40
call dword [0x5f3fa1b8]
jmp 0x635627
mov eax, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
je 0x63595c
push edi
push ecx
push eax
call fcn.0065ba13
add esp, 0xc
cmp dword [esp + 0x1c], ebx
je 0x635671
cmp dword [esp + 0x48], ebx
jne 0x63569b
test esi, esi
je 0x63569b
push dword [esp + 0x14]
mov esi, edi
shr esi, 1
push esi
push dword [esp + 0x18]
call dword [0x5f3faa94]
push 0x5f390958
push esi
push dword [esp + 0x24]
call dword [0x5f3faa94]
add esp, 0x18
mov eax, dword [esp + 0x30]
shr edi, 1
push dword [eax + 8]
push edi
push dword [esp + 0x18]
call dword [0x5f3faa94]
add esp, 0xc
mov esi, ebx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x6356c3
push eax
call dword [0x5f3fa070]
cmp dword [esp + 0x20], 0
je 0x6356d4
push dword [esp + 0x20]
call dword [0x5f3fa070]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x3c], ebx
mov ebx, eax
mov dword [esp + 0x14], ebx
test edi, edi
je 0x635735
cmp word [edi], ax
je 0x635735
test esi, esi
jne 0x635735
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x635730
cmp word [edi + eax*2], 0x2f
jne 0x635722
test ebx, ebx
jne 0x635729
mov ebx, eax
mov dword [esp + 0x14], ebx
sub eax, 1
jne 0x635711
jmp 0x635730
inc eax
sub ebx, eax
mov dword [esp + 0x14], ebx
lea edi, [edi + eax*2]
jmp 0x635755
mov dword [esp + 0x3c], eax
test esi, esi
je 0x635741
mov edi, ecx
jmp 0x635755
mov edi, dword [edx - 0x10]
test edi, edi
je 0x63591c
cmp word [edi], ax
je 0x63591c
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x635918
lea eax, [eax*2 + 2]
push eax
mov dword [esp + 0x20], eax
xor eax, eax
push eax
call dword [0x5f3fa1b8]
mov esi, eax
test esi, esi
je 0x635987
mov eax, dword [esp + 0x1c]
shr eax, 1
push edi
push eax
push esi
mov dword [esp + 0x28], eax
call dword [0x5f3faa98]
add esp, 0xc
cmp dword [esp + 0x3c], 0
je 0x6358d5
test ebx, ebx
je 0x6357af
push 0x5c
pop eax
mov word [esi + ebx*2], ax
xor eax, eax
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
movzx ecx, word [eax]
cmp cx, word [esp + 0x40]
je 0x6357ca
cmp cx, word [esp + 0x54]
jne 0x6357cd
mov edx, dword [eax + 8]
cmp cx, word [esp + 0x40]
je 0x63584a
cmp cx, word [esp + 0x54]
je 0x63584a
test cx, cx
jne 0x6358d5
mov eax, dword [esp + 0x18]
push 0x5f3932f0
mov ebx, dword [eax - 8]
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x6358d5
push 0x5f3932fc
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x6358d5
push 0x5f393310
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x6358d5
push 0x5f393350
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x6358d5
mov eax, dword [esp + 0x14]
inc eax
jmp 0x63585d
mov ecx, 0x2000
test dl, 1
je 0x635872
test word [eax + 0x10], cx
je 0x635872
lea eax, [ebx + 1]
lea eax, [edi + eax*2]
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call dword [0x5f3faa98]
add esp, 0xc
jmp 0x6358d5
test dl, 4
je 0x6358d5
test word [eax + 0x10], cx
je 0x6358d5
xor ecx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
push ecx
push dword [eax + 0x18]
call dword [0x5f3fa7ec]
test eax, eax
js 0x6358d5
push dword [esp + 0x14]
call dword [0x5f3fa078]
test eax, eax
je 0x6358c6
mov ecx, dword [esp + 0x14]
call fcn.00634d92
test eax, eax
jne 0x6358c6
lea eax, [ebx + 1]
lea eax, [edi + eax*2]
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call dword [0x5f3faa98]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
push dword [eax + 0x18]
call dword [0x5f3fa7e8]
mov ebx, dword [esp + 0x38]
mov edi, dword [ebx + 8]
jmp 0x6358ee
push esi
push dword [edi]
call dword [0x5f3fa1e4]
test eax, eax
je 0x635940
mov edi, dword [edi + 4]
test edi, edi
jne 0x6358de
test esi, esi
je 0x635918
push 8
push 0x40
call dword [0x5f3fa1b8]
mov ecx, eax
test ecx, ecx
je 0x63598d
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [ecx + 4], eax
mov dword [ebx + 8], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
add edx, 0x18
mov eax, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], edx
cmp ecx, dword [eax]
jae 0x635996
mov ecx, dword [esp + 0x10]
xor ebx, ebx
inc ebx
jmp 0x63548c
push esi
call dword [0x5f3fa1f4]
xor edi, edi
mov esi, edi
jmp 0x6358f2
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
jmp 0x635999
mov eax, dword [esp + 0x30]
test eax, eax
je 0x63596b
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x63597a
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
xor eax, eax
mov edi, eax
jmp 0x635999
push esi
call dword [0x5f3fa1f4]
jmp 0x635999
xor edi, edi
inc edi
push dword [esp + 0x5c]
call dword [0x5f3fa198]
lea eax, [esp + 0x58]
push eax
call dword [0x5f3faacc]
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
cmp dword [esp + 0x34], 0
je 0x6359d3
push dword [esp + 0x34]
call dword [0x5f3fa074]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x6359e2
push eax
call dword [0x5f3fa1f4]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
call dword [0x5f3faab8]
test edi, edi
jne 0x635a2c
jmp 0x635a20
cmp dword [esi], 0
je 0x635a13
push dword [esi]
call dword [0x5f3fa1f4]
mov eax, dword [esi + 4]
push esi
mov dword [ebx + 8], eax
call dword [0x5f3fa1f4]
mov esi, dword [ebx + 8]
test esi, esi
jne 0x635a06
xor eax, eax
mov dword [ebx + 8], eax
mov eax, edi
mov ecx, dword [esp + 0x24c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0065afab
mov esp, ebp
pop ebp
ret 8