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

Disassembly:
sub esp, 0x13c
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x14c]
or dword [esp + 4], 0xffffffff
or dword [esp + 0x30], 0xffffffff
or dword [esp + 0x2c], 0xffffffff
push ebx
push ebp
push esi
mov esi, dword [esp + 0x154]
xor ebx, ebx
add esi, eax
push edi
mov edi, ecx
lea ecx, [esi - 1]
mov ebp, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], ebp
test edx, 0xe20f5a6f
je 0x4264da
push 0xfffffffffffffffd
jmp 0x426d86
test edi, edi
je 0x426d84
test eax, eax
je 0x426d84
mov ecx, dword [esp + 0x164]
cmp dword [esp + 0x160], ebx
jne 0x426502
test ecx, ecx
jg 0x426d84
test ecx, ecx
jns 0x42650d
push 0xfffffffffffffff1
jmp 0x426d86
movzx eax, word [edi + 0x18]
add eax, edi
cmp dword [edi + 0x20], 0
mov dword [esp + 0x70], eax
movzx eax, word [edi + 0x1c]
mov dword [esp + 0x68], eax
movzx eax, word [edi + 0x1a]
mov dword [esp + 0xe0], ebx
mov ebx, 0x4060d8
cmovne ebx, dword [edi + 0x20]
cmp dword [edi], 0x50435245
mov dword [esp + 0x6c], eax
mov eax, 0xf4240
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], ebx
je 0x426584
lea eax, [esp + 0x11c]
push eax
push 0
lea edx, [esp + 0xfc]
mov ecx, edi
call fcn.0040ee0f
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x42657d
push 0xfffffffffffffffc
jmp 0x426d86
mov edx, dword [esp + 0x15c]
mov ecx, dword [ebp + 8]
mov eax, ecx
or eax, edx
shr eax, 4
and eax, 1
mov dword [esp + 0x30], eax
movzx eax, word [ebp + 0xc]
shr eax, 3
and eax, 1
mov dword [esp + 0xec], eax
movzx eax, word [ebp + 0x1a]
shr ecx, 0x12
and ecx, 1
mov dword [esp + 0x38], ecx
movzx ecx, word [ebp + 0x1c]
imul ecx, eax
movzx eax, word [ebp + 0x18]
add ecx, edi
add eax, ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x154]
add eax, ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xb0], ecx
mov eax, dword [ebp + 8]
shr eax, 5
xor edi, edi
inc edi
and eax, edi
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
shr eax, 0xb
and eax, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 8]
shr eax, 0x1d
and eax, edi
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 8]
shr eax, 0x19
and eax, edi
mov dword [esp + 0x90], eax
mov eax, edx
shr eax, 7
and eax, edi
mov dword [esp + 0x84], eax
mov eax, edx
shr eax, 8
and eax, edi
mov dword [esp + 0x88], eax
mov eax, edx
shr eax, 0xa
and eax, edi
mov dword [esp + 0x9c], eax
mov eax, edx
shr eax, 0x1c
and eax, edi
mov dword [esp + 0xa0], eax
mov ecx, edx
shr ecx, 0xf
and ecx, edi
mov eax, edx
and eax, 0x8000000
push 2
pop edi
cmovne ecx, edi
xor edi, edi
lea eax, [ebx + 0x340]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], edi
mov dword [esp + 0x78], ebx
mov eax, edx
mov ecx, 0x1800000
and eax, ecx
je 0x4266e1
cmp eax, 0x800000
je 0x4266d5
cmp eax, 0x1000000
je 0x4266f9
push 0xffffffffffffffe9
jmp 0x426d86
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], ebx
jmp 0x426703
mov eax, dword [ebp + 8]
test ecx, eax
je 0x4266f9
xor ebx, ebx
shr eax, 0x17
inc ebx
and eax, ebx
mov dword [esp + 0xa8], eax
jmp 0x426703
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], edi
mov ecx, 0x700000
test ecx, edx
jne 0x426711
mov eax, dword [ebp + 8]
jmp 0x426713
mov eax, edx
and eax, ecx
je 0x42673d
cmp eax, 0x100000
je 0x426762
cmp eax, 0x200000
je 0x42675e
cmp eax, 0x300000
je 0x426757
cmp eax, 0x400000
je 0x42673d
cmp eax, 0x500000
jne 0x4266ce
push 2
pop ebx
mov dword [esp + 0x60], ebx
cmp dword [esp + 0xc4], edi
je 0x426798
test byte [ebp + 0xc], 1
je 0x426798
push 0xfffffffffffffff3
jmp 0x426d86
mov ecx, 0xd0a
jmp 0x426765
push 0xa
jmp 0x426764
push 0xd
pop ecx
mov ebx, edi
mov dword [esp + 0x60], ebx
cmp ecx, 0xff
jle 0x42678a
mov eax, ecx
sar eax, 8
mov dword [esp + 0x64], 2
mov byte [esp + 0x74], al
mov byte [esp + 0x75], cl
jmp 0x426741
mov dword [esp + 0x64], 1
mov byte [esp + 0x74], cl
jmp 0x426741
mov eax, dword [ebp + 8]
and eax, 7
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x164]
cdq
push 3
pop edi
idiv edi
movzx eax, word [ebp + 0x12]
mov edi, dword [esp + 0x164]
sub edi, edx
test ax, ax
je 0x426802
mov ecx, eax
mov eax, edi
push 3
cdq
pop ebp
idiv ebp
cmp ecx, eax
jl 0x426802
lea edi, [ecx + 1]
imul edi, edi, 3
mov ecx, edi
shl ecx, 2
call dword [0x440354]
mov ebp, eax
mov dword [esp + 0x54], ebp
test ebp, ebp
jne 0x4267f4
push 0xfffffffffffffffa
jmp 0x426d86
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x28], 1
jmp 0x42680d
mov ebp, dword [esp + 0x160]
mov dword [esp + 0x54], ebp
lea eax, [edi + edi]
cdq
push 3
pop ecx
idiv ecx
and dword [esp + 0x80], 0
or dword [esp + 0xcc], 0xffffffff
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], eax
movzx eax, word [ecx + 0x10]
lea eax, [eax*2 + 2]
cmp eax, dword [esp + 0x164]
cmovg eax, edi
mov dword [esp + 0xe8], eax
test ebp, ebp
je 0x426885
cdq
sub eax, edx
xor ecx, ecx
sar eax, 1
lea edi, [edi*4]
inc ecx
add edi, ebp
sub ecx, eax
lea eax, [edi + ecx*4]
sub edi, 4
cmp edi, eax
jb 0x426881
or dword [edi], 0xffffffff
sub edi, 4
cmp edi, eax
jae 0x42686f
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], 0
jne 0x4268b5
test byte [ecx + 0xc], 2
je 0x4268b5
movzx eax, word [ecx + 0x14]
movzx edx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], eax
je 0x4268b5
mov eax, dword [esp + 0x78]
movzx edx, byte [eax + edx]
mov dword [esp + 0x14], edx
test byte [ecx + 0xc], 4
je 0x4268e0
movzx eax, word [ecx + 0x16]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
movzx eax, byte [eax + ecx + 0x100]
mov dword [esp + 0x3c], eax
and dword [esp + 0x15c], 0x4000000
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
test ebp, ebp
je 0x426933
mov eax, dword [esp + 0xe8]
lea ecx, [eax*4]
add ecx, ebp
cmp ebp, ecx
jae 0x426933
sub ecx, ebp
dec ecx
shr ecx, 2
inc ecx
mov edi, ebp
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
je 0x426993
mov edi, esi
cmp esi, edx
jae 0x426993
test ebx, ebx
je 0x426968
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push edx
mov edx, ebx
mov ecx, edi
call fcn.00414d4a
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x42698f
mov edx, dword [esp + 0xb4]
jmp 0x42698a
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp edi, eax
ja 0x42698a
mov al, byte [edi]
cmp al, byte [esp + 0x74]
jne 0x42698a
cmp ecx, 1
je 0x42698f
mov al, byte [edi + 1]
cmp al, byte [esp + 0x75]
je 0x42698f
inc edi
cmp edi, edx
jb 0x426940
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x15c]
test edx, edx
jne 0x426a99
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x4269ec
cmp dword [esp + 0x44], edx
je 0x4269e3
cmp esi, edi
jae 0x426a99
mov ebx, ecx
movzx ecx, byte [esi]
mov eax, dword [esp + 0x78]
movzx eax, byte [ecx + eax]
cmp eax, ebx
je 0x426a99
inc esi
cmp esi, edi
jb 0x4269ba
jmp 0x426a99
movzx eax, byte [esi]
cmp eax, ecx
je 0x426a99
inc esi
cmp esi, edi
jb 0x4269d7
jmp 0x426a99
cmp dword [esp + 0xec], 0
je 0x426a99
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x158]
cmp esi, eax
jbe 0x426a99
cmp esi, edi
jae 0x426a7f
test ebx, ebx
je 0x426a44
cmp esi, dword [esp + 0xb0]
jbe 0x426a6f
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push dword [esp + 0xb8]
mov edx, ebx
mov ecx, esi
call fcn.00414de4
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x426a74
jmp 0x426a6f
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
add eax, ecx
cmp esi, eax
jb 0x426a6f
mov edx, esi
sub edx, ecx
mov al, byte [edx]
cmp al, byte [esp + 0x74]
jne 0x426a6f
cmp ecx, 1
je 0x426a74
mov al, byte [edx + 1]
cmp al, byte [esp + 0x75]
je 0x426a74
inc esi
cmp esi, edi
jb 0x426a14
mov edx, dword [esp + 0x15c]
mov ebp, dword [esp + 0x54]
cmp byte [esi - 1], 0xd
jne 0x426a99
cmp ebx, 1
je 0x426a8f
cmp ebx, 2
jne 0x426a99
cmp esi, edi
jae 0x426a99
cmp byte [esi], 0xa
jne 0x426a99
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
test edx, edx
jne 0x426b1a
cmp dword [esp + 0xc4], edx
jne 0x426b1a
mov edx, dword [esp + 0x40]
test edx, edx
js 0x426b1a
mov eax, ebx
sub eax, esi
cmp eax, 0x3e8
jge 0x426b1a
xor ecx, ecx
cmp dword [esp + 0x14], ecx
setge cl
add ecx, esi
cmp ecx, dword [esp + 0x34]
jbe 0x426b1a
cmp dword [esp + 0x2c], 0
je 0x426af7
cmp ecx, ebx
jae 0x426c72
mov edi, dword [esp + 0x3c]
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x426b0d
cmp eax, edi
je 0x426b0d
cmp ecx, ebx
jb 0x426ae5
jmp 0x426b0e
cmp ecx, ebx
jae 0x426c72
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x426b0d
cmp ecx, ebx
jb 0x426aff
jmp 0x426b0e
dec ecx
cmp ecx, ebx
jae 0x426c72
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xac]
xor ebp, ebp
push ebp
push ebp
push ebp
push dword [esp + 0xfc]
lea eax, [esp + 0x58]
push eax
push 2
push ebp
push esi
mov ecx, esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0x68], ebp
call fcn.0042307e
mov edi, eax
cmp dword [esp + 0xa4], ebp
je 0x426b6c
mov eax, dword [esp + 0x20]
test eax, eax
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0x20], eax
cmp edi, 0xfffffc1a
je 0x426c76
cmp edi, 0xfffffc1b
je 0x426bac
mov eax, 0xfffffc1c
cmp edi, eax
je 0x426ba1
jle 0x426c78
cmp edi, 0xfffffc1e
jle 0x426bac
test edi, edi
jne 0x426c78
jmp 0x426bac
mov ebp, dword [esp + 0xb8]
cmp ebp, esi
jne 0x426baf
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
xor edi, edi
cmp dword [esp + 0x38], edi
je 0x426c1c
test ebx, ebx
je 0x426bf2
cmp esi, edx
jae 0x426c1c
push dword [esp + 0x24]
lea eax, [esp + 0x68]
push eax
push edx
mov edx, ebx
mov ecx, esi
call fcn.00414d4a
test eax, eax
jne 0x426cec
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
jmp 0x426c1c
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp esi, eax
ja 0x426c1c
mov al, byte [esi]
cmp al, byte [esp + 0x74]
jne 0x426c1c
cmp ecx, 1
je 0x426cec
mov al, byte [esi + 1]
cmp al, byte [esp + 0x75]
je 0x426cec
mov esi, ebp
cmp dword [esp + 0x30], edi
jne 0x426cec
mov eax, dword [esp + 0x10]
cmp ebp, eax
ja 0x426cec
cmp byte [ebp - 1], 0xd
jne 0x426c62
cmp ebp, eax
jae 0x426c62
cmp byte [ebp], 0xa
jne 0x426c62
mov eax, dword [esp + 0x18]
test byte [eax + 0xc], 0x20
jne 0x426c62
cmp ebx, 1
je 0x426c5f
cmp ebx, 2
je 0x426c5f
cmp dword [esp + 0x64], 2
jne 0x426c62
lea esi, [ebp + 1]
and dword [esp + 0xe4], edi
mov ebp, dword [esp + 0x54]
jmp 0x4268f2
xor edi, edi
jmp 0x426cf4
mov edi, ebp
xor esi, esi
inc esi
cmp edi, esi
je 0x426c87
cmp edi, 0xfffffc19
jne 0x426cf0
mov ebx, dword [esp + 0x164]
cmp dword [esp + 0x28], ebp
je 0x426cdf
cmp ebx, 4
jl 0x426cbd
lea eax, [ebx*4 - 8]
push eax
mov eax, dword [esp + 0x58]
add eax, 8
push eax
mov eax, dword [esp + 0x168]
add eax, 8
push eax
call dword [sym.imp.msvcrt.dll_memcpy]
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0xc8], ebx
mov ecx, dword [esp + 0x54]
cmovg eax, esi
mov dword [esp + 0x80], eax
call dword [0x440350]
cmp dword [esp + 0x80], ebp
je 0x426d45
mov eax, ebp
jmp 0x426d51
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x54]
cmp dword [esp + 0x28], 0
je 0x426d03
mov ecx, ebp
call dword [0x440350]
push 0xfffffffffffffff4
pop eax
test edi, edi
je 0x426d12
cmp edi, eax
je 0x426d12
mov eax, edi
jmp 0x426d87
mov edx, dword [esp + 0x20]
test edx, edx
je 0x426d40
cmp dword [esp + 0x164], 1
jle 0x426d87
sub edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x160]
sub ebx, dword [esp + 0x150]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
jmp 0x426d87
or eax, 0xffffffff
jmp 0x426d87
mov eax, dword [esp + 0xc8]
cdq
sub eax, edx
sar eax, 1
cmp ebx, 2
jge 0x426d5a
mov eax, ebp
jmp 0x426d87
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x160]
mov dword [edx], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, dword [esp + 0xb0]
mov dword [edx + 4], ecx
jmp 0x426d87
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c
ret 0x18