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

Disassembly:
sub esp, 0x114
mov eax, dword [0x1008f304]
xor eax, esp
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x130]
push ebx
xor ebx, ebx
mov dword [esp + 0x34], edx
push ebp
mov ebp, dword [esp + 0x128]
mov dword [esp + 0x34], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x48], ebx
mov byte [esp + 0x13], bl
mov byte [esp + 0xb], bl
mov byte [esp + 0xa], bl
mov byte [esp + 9], bl
mov dword [esp + 0x24], ebx
lea ebx, [ecx + ebp]
push esi
mov esi, dword [esp + 0x124]
push edi
mov edi, ebx
mov dword [esp + 0x44], ebx
xor ebx, ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x48], ecx
lea ebx, [edi - 1]
mov dword [esp + 0x54], ebx
mov ebx, 0xfffffc19
mov dword [esp + 0x24], eax
test esi, esi
jne 0x100265db
test edx, edx
mov edx, dword [esp + 0x134]
jne 0x100265e2
test ebp, ebp
jne 0x100265e2
cmp edx, ebx
jne 0x100265e2
cmp ecx, ebx
jne 0x100265e2
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
call fcn.100230b8
add esp, 0x1c
jmp 0x1002703c
mov edx, dword [esp + 0x134]
test dword [esp + 0x13c], 0xe20f5a6f
je 0x100265f6
push 0xfffffffffffffffd
jmp 0x1002703b
test esi, esi
je 0x10027039
test ebp, ebp
je 0x10027039
test eax, eax
mov eax, dword [esp + 0x144]
jne 0x10026619
test eax, eax
jg 0x10027039
test eax, eax
jns 0x10026624
push 0xfffffffffffffff1
jmp 0x1002703b
test ecx, ecx
js 0x10027035
cmp ecx, edx
jg 0x10027035
cmp dword [esi], 0x50435245
je 0x10026650
cmp dword [esi], 0x45524350
push 0xfffffffffffffffc
pop eax
push 0xffffffffffffffe3
pop ecx
cmove eax, ecx
jmp 0x1002703c
movzx eax, word [esi + 0xc]
test al, 1
jne 0x1002665f
push 0xffffffffffffffe4
jmp 0x1002703b
mov eax, dword [esi + 8]
xor edx, edx
movzx ebp, word [esi + 0x1c]
inc edx
mov dword [esp + 0x20], eax
shr eax, 0xb
and eax, edx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x13c]
mov ecx, eax
shr ecx, 0xf
and ecx, edx
and eax, 0x8000000
movzx eax, word [esi + 0x18]
push 2
pop edx
cmovne ecx, edx
movzx edx, word [esi + 0x1a]
and dword [esp + 0x30], 0
add eax, esi
and dword [esp + 0x110], 0
mov esi, dword [esi + 0x20]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x90], eax
mov eax, 0x989680
mov dword [esp + 0x8c], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x1002671c
test byte [ecx], 1
je 0x100266ed
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], eax
test byte [ecx], 2
je 0x100266f9
mov eax, dword [ecx + 8]
mov dword [esp + 0x6c], eax
test byte [ecx], 0x10
je 0x10026705
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x70], eax
test byte [ecx], 4
je 0x10026714
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x110], eax
test byte [ecx], 8
je 0x1002671c
mov esi, dword [ecx + 0x10]
mov eax, dword [esp + 0x20]
test esi, esi
mov ecx, 0x10088330
cmovne ecx, esi
or eax, dword [esp + 0x13c]
shr eax, 4
and eax, 1
imul edx, ebp
mov dword [esp + 0x58], eax
xor ebp, ebp
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0xd4], ebp
add edx, eax
mov dword [esp + 0xc8], ebp
movzx ebx, word [eax + 0x18]
movzx esi, word [eax + 0xc]
add edx, ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x134]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x5c]
add eax, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe0], eax
mov eax, ebx
shr eax, 5
mov dword [esp + 0xdc], edx
xor edx, edx
inc edx
mov dword [esp + 0x28], esi
and eax, edx
mov dword [esp + 0x118], ebp
mov dword [esp + 0xbc], eax
mov eax, ebx
shr eax, 0x1d
and eax, edx
mov dword [esp + 0x114], ebp
mov dword [esp + 0xb8], eax
mov eax, ebx
shr eax, 0x19
and eax, edx
mov dword [esp + 0x10c], ebp
mov edx, dword [esp + 0x13c]
mov dword [esp + 0xb4], eax
mov eax, edx
shr eax, 7
and eax, 1
mov dword [esp + 0xa8], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [esp + 0xac], eax
mov eax, edx
shr eax, 0xa
and eax, 1
mov dword [esp + 0xc0], eax
mov eax, edx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0xc4], eax
mov eax, esi
shr eax, 0xc
and eax, 1
mov dword [esp + 0xd0], eax
lea eax, [ecx + 0x100]
mov dword [esp + 0x9c], eax
lea eax, [ecx + 0x340]
mov dword [esp + 0xa0], eax
mov ecx, 0x1800000
mov eax, edx
and eax, ecx
je 0x100268b7
cmp eax, 0x800000
je 0x100268aa
cmp eax, 0x1000000
jne 0x100268a3
mov dword [esp + 0xcc], ebp
mov ecx, 0x700000
mov eax, edx
test ecx, edx
cmove eax, ebx
and eax, ecx
je 0x10026907
cmp eax, 0x100000
je 0x100268ee
cmp eax, 0x200000
je 0x100268ea
cmp eax, 0x300000
je 0x100268d1
cmp eax, 0x400000
je 0x10026907
cmp eax, 0x500000
je 0x100268cc
push 0xffffffffffffffe9
jmp 0x1002703b
mov dword [esp + 0xcc], 1
jmp 0x1002686c
test ecx, ebx
je 0x10026865
mov eax, ebx
shr eax, 0x17
and eax, 1
mov dword [esp + 0xcc], eax
jmp 0x1002686c
push 2
pop ecx
jmp 0x1002690a
mov ecx, ebp
mov dword [esp + 0x84], 2
mov word [esp + 0x94], 0xa0d
jmp 0x1002690a
push 0xa
jmp 0x100268f0
push 0xd
pop eax
mov ecx, ebp
mov dword [esp + 0x84], 1
mov byte [esp + 0x94], al
jmp 0x1002690a
xor ecx, ecx
inc ecx
mov dword [esp + 0x80], ecx
cmp dword [esp + 0xf0], ebp
je 0x10026929
test esi, 0x200
je 0x10026929
push 0xfffffffffffffff3
jmp 0x1002703b
mov eax, dword [esp + 0x144]
cdq
push 3
pop ebp
idiv ebp
mov ebx, dword [esp + 0x144]
sub ebx, edx
mov dword [esp + 0x64], ebp
lea eax, [ebx + ebx]
cdq
idiv ebp
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], eax
movzx edx, word [edx + 0x12]
test dx, dx
je 0x1002699a
mov esi, edx
mov eax, ebx
cdq
idiv ebp
cmp esi, eax
jl 0x1002699a
lea eax, [esi + 1]
imul ebx, eax, 3
mov eax, ebx
shl eax, 2
push eax
call dword [0x1008f210]
mov esi, eax
mov dword [esp + 0x78], esi
pop ecx
test esi, esi
jne 0x10026989
push 0xfffffffffffffffa
jmp 0x1002703b
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x3c], 1
jmp 0x100269a2
mov esi, dword [esp + 0x24]
mov dword [esp + 0x74], esi
lea eax, [ebx + ebx]
and dword [esp + 0xa4], 0
cdq
mov ebp, esi
idiv dword [esp + 0x64]
or dword [esp + 0xf8], 0xffffffff
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], eax
test ebp, ebp
je 0x10026a11
lea ecx, [ebx*4]
mov ebx, dword [esp + 0x1c]
add ecx, ebp
mov edx, ecx
movzx eax, word [ebx + 0x10]
shl eax, 2
sub edx, eax
lea eax, [ebp + 8]
cmp edx, eax
cmovb edx, eax
sub ecx, 4
cmp ecx, edx
jb 0x100269fd
or dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x100269ef
mov esi, dword [esp + 0x74]
or dword [esi + 4], 0xffffffff
mov eax, dword [esp + 0x74]
or dword [eax], 0xffffffff
mov ecx, dword [esp + 0x80]
jmp 0x10026a15
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x58], 0
jne 0x10026a6d
movzx eax, word [ebx + 0xc]
test al, 0x10
je 0x10026a4e
mov dl, byte [ebx + 0x14]
mov dword [esp + 0x14], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0x1b], dl
test al, 0x20
je 0x10026a6d
movzx eax, dl
mov edx, dword [esp + 0x9c]
mov al, byte [eax + edx]
mov byte [esp + 0x13], al
jmp 0x10026a6d
test dword [esp + 0x28], 0x100
jne 0x10026a6d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10026a6d
test byte [eax + 4], 1
je 0x10026a6d
add eax, 8
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xc]
test al, 0x40
je 0x10026a9f
mov dl, byte [ebx + 0x16]
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], dl
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], 1
test al, al
jns 0x10026a9f
movzx eax, byte [esp + 0x11]
mov al, byte [eax + edx]
mov byte [esp + 0x11], al
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov esi, ebp
test eax, 0x40000
je 0x10026b24
mov ebx, dword [esp + 0xe0]
mov esi, edi
cmp edi, ebx
jae 0x10026b20
test ecx, ecx
je 0x10026af0
cmp esi, ebx
jae 0x10026b1b
push dword [esp + 0x34]
lea eax, [esp + 0x88]
push eax
push ebx
push ecx
push esi
call fcn.1003d210
mov ecx, dword [esp + 0x94]
add esp, 0x14
test eax, eax
jne 0x10026b20
mov ebx, dword [esp + 0xe0]
jmp 0x10026b1b
mov edx, dword [esp + 0x84]
mov eax, ebx
sub eax, edx
cmp esi, eax
ja 0x10026b1b
mov al, byte [esi]
cmp al, byte [esp + 0x94]
jne 0x10026b1b
cmp edx, 1
je 0x10026b20
mov al, byte [esi + 1]
cmp al, byte [esp + 0x95]
je 0x10026b20
inc esi
cmp esi, ebx
jb 0x10026abd
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
or eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x14]
test eax, 0x4000000
jne 0x10026c6d
test edx, edx
je 0x10026b83
cmp edi, esi
jae 0x10026c6d
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x1b]
cmp dl, cl
je 0x10026b71
mov al, byte [edi]
cmp al, dl
je 0x10026c69
cmp al, cl
je 0x10026c69
inc edi
cmp edi, esi
jb 0x10026b55
jmp 0x10026c69
cmp byte [edi], dl
je 0x10026c69
inc edi
cmp edi, esi
jb 0x10026b71
jmp 0x10026c69
test dword [esp + 0x28], 0x100
je 0x10026c3c
mov eax, dword [esp + 0xdc]
add eax, dword [esp + 0x48]
cmp edi, eax
jbe 0x10026c69
cmp edi, esi
jae 0x10026c1c
test ecx, ecx
je 0x10026bdf
cmp edi, dword [esp + 0xdc]
jbe 0x10026c13
push dword [esp + 0x34]
lea eax, [esp + 0x88]
push eax
push dword [esp + 0xe4]
push ecx
push edi
call fcn.1003d210
mov ecx, dword [esp + 0x94]
add esp, 0x14
test eax, eax
jne 0x10026c18
jmp 0x10026c13
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x84]
add eax, edx
cmp edi, eax
jb 0x10026c13
mov ebx, edi
sub ebx, edx
mov al, byte [ebx]
cmp al, byte [esp + 0x94]
jne 0x10026c13
cmp edx, 1
je 0x10026c18
mov al, byte [ebx + 1]
cmp al, byte [esp + 0x95]
je 0x10026c18
inc edi
cmp edi, esi
jb 0x10026ba8
mov ebx, dword [esp + 0x1c]
cmp byte [edi - 1], 0xd
jne 0x10026c69
cmp ecx, 1
je 0x10026c2c
cmp ecx, 2
jne 0x10026c69
cmp edi, esi
jae 0x10026c69
cmp byte [edi], 0xa
mov edx, dword [esp + 0x14]
jne 0x10026c6d
inc edi
jmp 0x10026c6d
cmp dword [esp + 0x2c], 0
je 0x10026c6d
cmp edi, esi
jae 0x10026c6d
mov ebp, dword [esp + 0x2c]
movzx edx, byte [edi]
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
jne 0x10026c65
inc edi
cmp edi, esi
jb 0x10026c4b
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
or eax, dword [esp + 0x13c]
test eax, 0x4000000
jne 0x10026d0a
cmp dword [esp + 0xf0], 0
jne 0x10026d0a
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10026ca7
test byte [ecx + 4], 2
je 0x10026ca7
mov eax, ebp
sub eax, edi
cmp eax, dword [ecx + 0x28]
jb 0x10026e8f
cmp dword [esp + 0x50], 0
je 0x10026d0a
mov eax, ebp
sub eax, edi
cmp eax, 0x3e8
jge 0x10026d0a
lea ecx, [edi + edx]
cmp ecx, dword [esp + 0x54]
jbe 0x10026d0a
cmp ecx, ebp
jae 0x10026e8f
mov ah, byte [esp + 0x11]
cmp byte [esp + 0x12], ah
je 0x10026ce9
mov al, byte [ecx]
mov edx, ecx
inc ecx
cmp al, byte [esp + 0x12]
je 0x10026cfc
cmp al, ah
je 0x10026cfc
cmp ecx, ebp
jb 0x10026cd4
jmp 0x10026cfe
mov ah, byte [esp + 0x12]
mov al, byte [ecx]
mov edx, ecx
inc ecx
cmp al, ah
je 0x10026cfc
cmp ecx, ebp
jb 0x10026ced
jmp 0x10026cfe
mov ecx, edx
cmp ecx, ebp
jae 0x10026e8f
mov dword [esp + 0x54], ecx
xor eax, eax
mov dword [esp + 0xe4], edi
push eax
push eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x70]
push eax
push 2
push edi
push dword [esp + 0xec]
mov dword [esp + 0x104], edi
push edi
call fcn.100230b8
add esp, 0x1c
mov esi, eax
cmp dword [esp + 0xc8], 0
je 0x10026d64
mov eax, dword [esp + 0x38]
test eax, eax
cmove eax, dword [esp + 0xec]
mov dword [esp + 0x38], eax
cmp esi, 0xfffffc1a
je 0x10026ee7
cmp esi, 0xfffffc1d
je 0x10026db4
cmp esi, 0xfffffc1e
je 0x10026da9
cmp esi, 0xfffffc1f
je 0x10026d9a
cmp esi, 0xfffffc20
je 0x10026db4
test esi, esi
jne 0x10026ee9
jmp 0x10026db4
mov ebx, edi
mov dword [esp + 0xd4], 1
jmp 0x10026dbf
mov ebx, dword [esp + 0xe4]
cmp ebx, edi
jne 0x10026dbf
and dword [esp + 0xd4], 0
lea ebx, [edi + 1]
mov eax, dword [esp + 0x20]
xor esi, esi
mov ecx, dword [esp + 0x80]
test eax, 0x40000
je 0x10026e37
mov eax, dword [esp + 0xe0]
test ecx, ecx
je 0x10026e0a
cmp edi, eax
jae 0x10026e33
push dword [esp + 0x34]
lea edx, [esp + 0x88]
push edx
push eax
push ecx
push edi
call fcn.1003d210
add esp, 0x14
test eax, eax
jne 0x10026e91
mov ecx, dword [esp + 0x80]
jmp 0x10026e33
mov edx, dword [esp + 0x84]
sub eax, edx
cmp edi, eax
ja 0x10026e33
mov al, byte [edi]
cmp al, byte [esp + 0x94]
jne 0x10026e33
cmp edx, 1
je 0x10026e91
mov al, byte [edi + 1]
cmp al, byte [esp + 0x95]
je 0x10026e91
mov eax, dword [esp + 0x20]
mov edi, ebx
cmp dword [esp + 0x58], esi
jne 0x10026e91
cmp ebx, ebp
ja 0x10026e91
cmp ebx, dword [esp + 0x44]
jbe 0x10026e7e
cmp byte [ebx - 1], 0xd
jne 0x10026e7e
cmp ebx, ebp
jae 0x10026e7e
cmp byte [ebx], 0xa
jne 0x10026e7e
mov edx, dword [esp + 0x1c]
mov esi, 0x800
test word [edx + 0xc], si
jne 0x10026e7e
cmp ecx, 1
je 0x10026e7b
cmp ecx, 2
je 0x10026e7b
cmp dword [esp + 0x84], 2
jne 0x10026e7e
lea edi, [ebx + 1]
and dword [esp + 0x114], 0
mov ebx, dword [esp + 0x1c]
jmp 0x10026aa7
xor esi, esi
xor edi, edi
inc edi
cmp dword [esp + 0x3c], 0
je 0x10026ea6
push dword [esp + 0x74]
call dword [0x1008f214]
pop ecx
push 0xfffffffffffffff4
pop eax
test esi, esi
je 0x10026eb5
cmp esi, eax
jne 0x10027031
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x10026f64
cmp dword [esp + 0x144], edi
jle 0x10026f67
mov ecx, dword [esp + 0x24]
sub ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x134]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
jmp 0x10026f67
xor esi, esi
xor edi, edi
inc edi
cmp esi, edi
je 0x10026ef8
cmp esi, 0xfffffc19
jne 0x10026e94
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x60]
je 0x10026f4b
cmp ebp, 4
jl 0x10026f28
lea eax, [ebp*4 - 8]
push eax
mov eax, dword [esp + 0x78]
add eax, 8
push eax
mov eax, dword [esp + 0x2c]
add eax, 8
push eax
call sub.vcruntime140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0xf4], ebp
push dword [esp + 0x74]
cmovg eax, edi
mov dword [esp + 0xa8], eax
call dword [0x1008f214]
pop ecx
cmp dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xf4]
je 0x10026f8d
cmp ecx, ebp
jl 0x10026f8d
xor esi, esi
jmp 0x10026f96
or eax, 0xffffffff
mov edx, dword [esp + 0x40]
test edx, edx
je 0x1002703c
test byte [edx], 0x20
je 0x1002703c
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0x118]
mov dword [edx], ecx
jmp 0x1002703c
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
movzx edi, word [ebx + 0x10]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
cmp eax, edi
jg 0x10026fe9
test edx, edx
je 0x10026fe9
lea eax, [edi*2 + 2]
cmp eax, dword [esp + 0x144]
lea edi, [edx + ecx*4]
push 3
cmovg eax, dword [esp + 0x148]
lea edx, [edx + eax*4]
mov ecx, edx
sub ecx, edi
pop eax
add ecx, eax
xor eax, eax
shr ecx, 2
cmp edi, edx
mov edx, dword [esp + 0x24]
cmova ecx, eax
test ecx, ecx
je 0x10026fe9
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [esp + 0x144], 2
jge 0x10026ff7
xor esi, esi
jmp 0x10027018
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xdc]
mov dword [edx], eax
mov eax, dword [esp + 0xe8]
sub eax, dword [esp + 0xdc]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x40]
test edx, edx
je 0x10027031
test byte [edx], 0x20
je 0x10027031
mov edx, dword [edx + 0x18]
mov ecx, dword [esp + 0x114]
mov dword [edx], ecx
mov eax, esi
jmp 0x1002703c
push 0xffffffffffffffe8
jmp 0x1002703b
push 0xfffffffffffffffe
pop eax
mov ecx, dword [esp + 0x120]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003c212
add esp, 0x114
ret