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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [esp + 0x134]
add eax, dword [esp + 0x138]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x134], eax
jge 0x6642748d
mov eax, dword [esp + 0x130]
mov byte [esp + 0x64], 1
xor ebp, ebp
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x7c], 0
mov eax, dword [eax]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov edx, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], ebx
jmp 0x6642658b
test dword [eax + 8], 0x7fffffff
jne 0x664265a0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov edx, eax
mov eax, dword [esp + 0x130]
mov dword [eax], edx
mov eax, dword [esp + 0x18]
shl eax, 5
add eax, dword [edx + 0xc]
add eax, edx
mov esi, dword [eax + 0xc]
mov ecx, dword [eax]
mov byte [eax + 0x16], 0
mov edi, esi
test ecx, ecx
jg 0x6642651b
mov edi, dword [eax + 4]
add ebp, esi
movzx esi, byte [eax + 0x15]
add dword [esp + 0x20], edi
add dword [esp + 0x58], ecx
mov ebx, esi
test bl, bl
jne 0x66426556
mov edi, dword [esp + 0x10]
test edi, edi
js 0x66426540
add dword [esp + 0x68], edi
add dword [esp + 0x7c], 1
mov edi, dword [esp + 0x144]
mov dword [esp + 0x10], edi
test edi, edi
jns 0x66426556
mov edi, dword [eax + 0x10]
mov dword [esp + 0x10], edi
movzx eax, byte [eax + 0x14]
mov edi, dword [esp + 0x1c]
cmp al, 1
sbb dword [esp + 0x60], 0xffffffff
xor eax, 1
test ecx, ecx
setle cl
add dword [esp + 0x18], 1
and eax, ecx
and eax, esi
and byte [esp + 0x64], al
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x664265d0
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov edx, dword [edx]
cmp edx, 1
ja 0x664264c0
mov edx, eax
jmp 0x664264fd
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x130]
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
sub esp, 8
mov eax, dword [esp + 0x130]
mov edx, dword [eax]
jmp 0x664264fd
add ebp, dword [esp + 0x68]
cmp dword [esp + 0x140], ebp
jge 0x66426948
mov eax, dword [esp + 0x144]
test eax, eax
js 0x66426622
test ebp, ebp
jle 0x66427424
mov eax, dword [esp + 0x144]
imul eax, dword [esp + 0x140]
cdq
idiv ebp
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x7c]
imul eax, dword [esp + 0x144]
sub dword [esp + 0x140], eax
jmp 0x6642662d
mov eax, dword [esp + 0x68]
sub dword [esp + 0x140], eax
lea eax, [esp + 0x90]
cmp dword [esp + 0x138], 0x20
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], 0x20
jg 0x66427434
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x134], eax
jge 0x66426788
mov edx, 0x20
xor ebx, ebx
mov edi, dword [esp + 0x134]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x130]
jmp 0x664266b9
lea edx, [ebx + 1]
add edi, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x88]
mov dword [edx + ebx*4], eax
mov ebx, dword [esp + 0x84]
cmp edi, ebp
jge 0x66426716
mov edx, dword [esp + 0x80]
mov ecx, dword [esi]
mov eax, edi
shl eax, 5
add eax, ecx
add eax, dword [ecx + 0xc]
mov eax, dword [eax + 0xc]
cmp ebx, edx
jne 0x66426690
lea edx, [ebx + ebx]
mov dword [esp], ebx
lea ecx, [esp + 0x80]
add edi, 1
mov dword [esp + 4], edx
mov dword [esp + 0x18], eax
call fcn.66797610
sub esp, 8
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x18]
lea edx, [ecx + 1]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x88]
mov dword [edx + ecx*4], eax
mov ebx, dword [esp + 0x84]
cmp edi, ebp
jl 0x664266b2
mov esi, edx
shl ebx, 2
lea edi, [esi + ebx]
cmp esi, edi
je 0x66426788
mov eax, ebx
mov ecx, 0x1f
mov edx, edi
sar eax, 2
bsr eax, eax
xor eax, 0x1f
sub ecx, eax
mov eax, esi
add ecx, ecx
call fcn.66425e30
cmp ebx, 0x40
jle 0x664273fc
lea ebx, [esi + 0x40]
mov eax, esi
mov edx, ebx
call fcn.66425da0
cmp edi, ebx
je 0x66426788
lea esi, [esi]
nop
mov ecx, dword [ebx]
mov edx, dword [ebx - 4]
lea eax, [ebx - 4]
cmp ecx, edx
jge 0x66427479
mov dword [eax + 4], edx
mov esi, eax
mov edx, dword [eax - 4]
sub eax, 4
cmp ecx, edx
jl 0x66426770
add ebx, 4
mov dword [esi], ecx
cmp edi, ebx
jne 0x66426760
mov ebp, dword [esp + 0x140]
test ebp, ebp
jle 0x664274c1
mov edi, dword [esp + 0x138]
test edi, edi
jle 0x664274c1
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x138]
xor edx, edx
xor ebx, ebx
lea esi, [esi]
nop
mov ecx, dword [esi + edx*4]
mov ebp, edi
sub ebp, edx
add edx, 1
mov eax, ecx
imul eax, ebp
add eax, ebx
add ebx, ecx
cmp edi, edx
jle 0x664267e0
cmp eax, dword [esp + 0x140]
jl 0x664267c0
sub eax, dword [esp + 0x140]
cdq
idiv ebp
sub ecx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x134], eax
jge 0x664268e0
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
mov eax, dword [eax]
sub ebx, 1
mov dword [esp + 0x20], ebx
mov edx, eax
jmp 0x66426893
test dword [eax + 8], 0x7fffffff
jne 0x664268b0
mov dword [esp + 0x130], ecx
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov ecx, dword [esp + 0x130]
mov edx, eax
mov dword [ecx], eax
mov eax, edi
shl eax, 5
add eax, dword [edx + 0xc]
add eax, edx
cmp dword [eax + 0xc], ebx
cmovle ebx, dword [eax + 0xc]
mov byte [eax + 0x16], 1
add edi, 1
mov dword [eax + 0x1c], ebx
cmp edi, dword [esp + 0x1c]
je 0x664268e0
mov eax, dword [ecx]
add esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
cmp esi, ebp
jl 0x664268a5
mov ebx, dword [esp + 0x20]
sub esi, ebp
mov edx, dword [edx]
cmp edx, 1
ja 0x66426830
mov edx, eax
jmp 0x66426870
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov dword [esp + 0x130], ecx
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
sub esp, 8
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx]
jmp 0x66426870
mov eax, dword [esp + 0x88]
lea edi, [esp + 0x90]
cmp eax, edi
je 0x664268fa
mov dword [esp], eax
call fcn.6678ef68
mov dword [esp + 0x138], 0
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x134], eax
jge 0x66426937
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
jmp 0x66427314
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x664270de
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x140]
mov esi, dword [esp + 0x20]
sub edi, eax
mov dword [esp + 0x74], edi
add eax, esi
cmp eax, dword [esp + 0x140]
jle 0x66426a48
sub esi, edi
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x60], esi
cmp dword [esp + 0x134], ebp
jge 0x66426928
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
mov edi, dword [esp + 0x130]
mov eax, dword [eax]
mov edx, eax
jmp 0x66426a07
test dword [eax + 8], 0x7fffffff
jne 0x66426a18
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov dword [edi], eax
mov edx, eax
mov eax, ebx
shl eax, 5
add eax, dword [edx + 0xc]
add eax, edx
cmp byte [eax + 0x16], 0
jne 0x664269fa
mov esi, dword [eax]
mov ecx, dword [eax + 0xc]
test esi, esi
jle 0x66426a39
sub dword [esp + 0x138], 1
mov dword [eax + 0x1c], ecx
mov byte [eax + 0x16], 1
add ebx, 1
cmp ebx, ebp
je 0x664270cb
mov eax, dword [edi]
mov edx, dword [edx]
cmp edx, 1
ja 0x664269a0
mov edx, eax
jmp 0x664269d2
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, edi
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
mov edx, dword [edi]
sub esp, 8
jmp 0x664269d2
mov esi, dword [eax + 4]
cmp ecx, esi
jl 0x664269fa
mov ecx, esi
jmp 0x664269eb
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x134], eax
jge 0x664274e4
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
mov ebp, dword [0x66a1f9e0]
mov esi, dword [esp + 0x130]
mov eax, dword [eax]
mov edx, eax
mov edx, dword [edx]
cmp edx, 1
jbe 0x66426b16
lea esi, [esi]
nop
test dword [eax + 8], 0x7fffffff
jne 0x66426b20
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call ebp
mov dword [esi], eax
mov edx, eax
mov eax, edi
shl eax, 5
add eax, dword [edx + 0xc]
add eax, edx
cmp byte [eax + 0x16], 0
jne 0x66426b00
mov ebx, dword [eax + 8]
mov dword [esp + 0x18], ebx
mov ebx, dword [eax]
test ebx, ebx
jle 0x66426db0
mov ecx, dword [eax + 0xc]
cmp dword [esp + 0x18], ecx
jle 0x66426b48
cmp byte [esp + 0x64], 0
jne 0x66426b00
cmp byte [eax + 0x15], 0
je 0x66426b00
cmp byte [eax + 0x14], 1
je 0x66426b00
test ebx, ebx
je 0x664274d4
nop
add edi, 1
cmp edi, dword [esp + 0x1c]
je 0x66426b71
mov eax, dword [esi]
mov edx, dword [edx]
cmp edx, 1
ja 0x66426a88
mov edx, eax
jmp 0x66426aba
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, esi
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
mov edx, dword [esi]
sub esp, 8
jmp 0x66426aba
sub dword [esp + 0x74], ecx
sub dword [esp + 0x58], ebx
cmp byte [eax + 0x14], 1
adc dword [esp + 0x60], 0xffffffff
mov dword [eax + 0x1c], ecx
mov byte [eax + 0x16], 1
sub dword [esp + 0x138], 1
add edi, 1
cmp edi, dword [esp + 0x1c]
jne 0x66426b09
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], eax
lea esi, [esi]
mov eax, dword [esp + 0x78]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x134], eax
jge 0x66426e38
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x74]
mov eax, dword [eax]
mov dword [esp + 0x18], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x64], 0
mov edi, eax
jmp 0x66426c48
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov eax, esi
mov ebx, dword [esp + 0x14]
mov dword [ebp + 0x1c], esi
cdq
shl eax, 8
shld edx, esi, 8
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
jle 0x66426ed8
mov eax, dword [ebp + 0xc]
cmp eax, esi
jle 0x66426dc0
sub eax, esi
add dword [esp + 0x70], eax
xor ebx, ebx
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
je 0x66426ded
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov edx, dword [edi]
cmp edx, 1
jbe 0x66426c8a
test dword [eax + 8], 0x7fffffff
jne 0x66426e70
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov edi, dword [esp + 0x130]
mov dword [edi], eax
mov ebp, dword [esp + 0x18]
mov edi, eax
shl ebp, 5
add ebp, dword [eax + 0xc]
add ebp, eax
cmp byte [ebp + 0x16], 0
jne 0x66426c2c
mov esi, dword [ebp]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], esi
test eax, eax
jle 0x66426ea0
mov eax, esi
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
cdq
mov eax, dword [esp + 0x28]
mov ecx, edx
imul eax, esi
mov esi, dword [esp + 0x58]
imul ecx, ebx
mov dword [esp + 8], esi
sar esi, 0x1f
mov dword [esp + 0xc], esi
add ecx, eax
mov eax, dword [esp + 0x28]
mul ebx
add edx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6678df48
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x10]
mov ecx, esi
sar ecx, 0x1f
mov eax, ecx
mov dword [esp + 0x20], ecx
cdq
movzx eax, cl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x44]
add eax, ebx
adc edx, esi
mov ebx, eax
shrd ebx, edx, 8
mov esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
sar esi, 8
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x54], edx
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, esi
mov esi, dword [esp + 0x24]
xor eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
sub eax, ebx
movzx ebx, al
mov eax, ebx
mov ebx, dword [esp + 0x54]
xor eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
sub ecx, eax
mov eax, 0x7f
sbb ebx, edx
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jge 0x66426be8
mov esi, dword [esp + 0x38]
add esi, 1
jmp 0x66426bec
mov ecx, dword [eax + 4]
jmp 0x66426ade
mov edx, dword [ebp + 8]
mov eax, esi
mov ebp, dword [esp + 0x64]
xor ebx, ebx
sub eax, edx
mov ecx, ebp
add eax, ebp
cmp edx, esi
cmovl ecx, eax
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
cmp eax, dword [esp + 0x1c]
jne 0x66426c3f
mov esi, dword [esp + 0x64]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x70]
cmp esi, ebx
setge dl
test esi, esi
setg al
and edx, eax
cmp esi, ebx
mov ebp, edx
sete byte [esp + 0x18]
jg 0x66426e18
test ebx, ebx
jg 0x66426f00
mov eax, ebp
test al, al
jne 0x66426ffa
mov esi, dword [esp + 0x138]
test esi, esi
jle 0x66426e38
cmp byte [esp + 0x18], 0
je 0x66426b80
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x138]
add ecx, 2
test ebx, ebx
jne 0x6642740a
mov eax, dword [esp + 0x78]
cdq
idiv ecx
add dword [esp + 0x13c], eax
mov dword [esp + 0x138], eax
jmp 0x66426905
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x130]
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
sub esp, 8
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
jmp 0x66426c8a
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x66426ee0
mov esi, dword [esp + 0x6c]
movzx eax, byte [ebp + 0x14]
mov ebx, dword [esp + 0x68]
mov ecx, esi
mov esi, dword [esp + 0x60]
imul ecx, eax
mul ebx
mov dword [esp + 8], esi
sar esi, 0x1f
mov dword [esp + 0xc], esi
add edx, ecx
jmp 0x66426ce1
mov eax, dword [ebp + 4]
jmp 0x66426c1c
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
jmp 0x66426ce1
mov eax, ebp
mov ebx, dword [esp + 0x134]
mov esi, dword [esp + 0x130]
mov byte [esp + 0x10], al
jmp 0x66426fa1
mov eax, dword [esi]
test dword [eax + 8], 0x7fffffff
jne 0x66426fb0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov dword [esi], eax
mov edi, eax
mov eax, ebx
shl eax, 5
add eax, dword [edi + 0xc]
add eax, edi
cmp byte [eax + 0x16], 0
jne 0x66426f98
mov ecx, dword [eax]
mov ebp, dword [eax + 0x1c]
test ecx, ecx
jle 0x66426fd8
mov edx, dword [eax + 0xc]
cmp ebp, edx
jge 0x66426f98
sub dword [esp + 0x78], edx
sub dword [esp + 0x58], ecx
cmp byte [eax + 0x14], 1
adc dword [esp + 0x60], 0xffffffff
sub dword [esp + 0x138], 1
mov dword [eax + 0x1c], edx
mov byte [eax + 0x16], 1
add ebx, 1
cmp ebx, dword [esp + 0x1c]
je 0x66426fe0
mov eax, dword [edi]
cmp eax, 1
ja 0x66426f20
mov edi, dword [esi]
jmp 0x66426f58
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, esi
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
mov edi, dword [esi]
sub esp, 8
jmp 0x66426f58
mov edx, dword [eax + 4]
jmp 0x66426f74
movzx ebp, byte [esp + 0x10]
mov eax, ebp
test al, al
je 0x66426e22
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
jmp 0x66427005
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov edi, eax
mov ebx, dword [esp + 0x134]
mov esi, dword [0x66a1f9e0]
mov ebp, dword [esp + 0x130]
jmp 0x66427090
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call esi
mov dword [ebp], eax
mov edi, eax
mov eax, ebx
shl eax, 5
add eax, dword [edi + 0xc]
add eax, edi
cmp byte [eax + 0x16], 0
jne 0x66427080
mov ecx, dword [eax + 8]
cmp dword [eax + 0x1c], ecx
jle 0x66427080
sub dword [esp + 0x78], ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax]
sub dword [esp + 0x58], ecx
cmp byte [eax + 0x14], 1
adc dword [esp + 0x60], 0xffffffff
sub dword [esp + 0x138], 1
mov byte [eax + 0x16], 1
add ebx, 1
cmp ebx, dword [esp + 0x1c]
jge 0x66426e22
mov eax, dword [ebp]
mov ecx, dword [edi]
mov edi, eax
cmp ecx, 1
jbe 0x66427046
test dword [eax + 8], 0x7fffffff
je 0x66427020
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, ebp
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
mov edi, dword [ebp]
sub esp, 8
jmp 0x66427046
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x138]
test edx, edx
je 0x6642730b
mov eax, dword [esp + 0x138]
mov dword [esp + 0x58], eax
sar eax, 0x1f
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], edx
cmp dword [esp + 0x134], eax
jge 0x66426937
mov eax, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov eax, dword [eax]
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
jmp 0x664271a3
mov ecx, dword [esp + 0x40]
mov edi, dword [esi + 0xc]
mov eax, dword [esi]
mov ebp, edi
test eax, eax
jg 0x66427152
mov ebp, dword [esi + 4]
mov eax, ebp
mov ebx, ecx
mov edx, dword [esp + 0x14]
sub eax, ecx
sar ebx, 0x1f
mov dword [esp + 0x40], eax
shld ebx, ecx, 8
shl ecx, 8
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x10]
sub eax, ecx
sbb edx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp dword [esp + 0x40], edi
jl 0x664273e0
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
je 0x66427300
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov edi, dword [esp + 0x20]
mov edx, dword [edi]
cmp edx, 1
jbe 0x664271e9
test dword [eax + 8], 0x7fffffff
jne 0x664272d0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call dword [0x66a1f9e0]
mov edi, dword [esp + 0x130]
mov dword [edi], eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
shl esi, 5
add esi, dword [eax + 0xc]
add esi, eax
cmp byte [esi + 0x16], 0
jne 0x66427187
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6678df48
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x10], eax
mov eax, edx
sar eax, 0x1f
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movzx ebx, al
mov ebp, eax
mov edi, eax
sar ebp, 0x1f
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ebp
adc ebx, dword [esp + 0x14]
shrd ecx, ebx, 8
sar ebx, 8
mov dword [esp + 0x44], ebx
mov ebx, edx
xor ebx, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x30]
mov ebx, ecx
xor ebx, ebp
sub edx, eax
movzx ecx, dl
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x3c]
mov ebx, ecx
mov ecx, 0x7f
xor ebx, eax
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x38]
sub eax, edi
mov edi, 0
sbb edx, ebp
cmp ecx, eax
sbb edi, edx
jge 0x66427140
mov ecx, dword [esp + 0x48]
add ecx, 1
jmp 0x66427144
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x130]
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
sub esp, 8
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
jmp 0x664271e9
mov dword [esp + 0x138], 0
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov ebx, dword [0x66a1f9e0]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
mov esi, dword [esp + 0x13c]
jmp 0x664273a6
test dword [eax + 8], 0x7fffffff
jne 0x664273b8
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], 0x20
call ebx
mov dword [ebp], eax
mov edx, eax
mov eax, edi
shl eax, 5
add eax, dword [edx + 0xc]
add eax, edx
mov dword [eax + 0x18], esi
add esi, dword [eax + 0x1c]
cmp byte [eax + 0x15], 0
mov ecx, esi
jne 0x66427396
mov esi, dword [esp + 0x144]
test esi, esi
jns 0x6642738d
mov esi, dword [eax + 0x10]
add esi, dword [esp + 0x138]
add esi, ecx
add edi, 1
cmp edi, dword [esp + 0x1c]
jge 0x66426937
mov eax, dword [ebp]
mov edx, dword [edx]
cmp edx, 1
ja 0x66427338
mov edx, eax
jmp 0x66427367
mov dword [esp + 4], 0
mov eax, dword [eax + 8]
mov ecx, ebp
and eax, 0x7fffffff
mov dword [esp], eax
call fcn.667cad20
mov edx, dword [ebp]
sub esp, 8
jmp 0x66427367
sub ebp, edi
mov byte [esi + 0x16], 1
sub dword [esp + 0x60], ebp
mov dword [esi + 0x1c], edi
add dword [esp + 0x58], 0xffffffff
adc dword [esp + 0x5c], 0xffffffff
jmp 0x664270f0
mov edx, edi
mov eax, esi
call fcn.66425da0
jmp 0x66426788
mov eax, dword [esp + 0x74]
cdq
idiv ecx
add dword [esp + 0x13c], eax
mov dword [esp + 0x138], eax
jmp 0x66426905
mov dword [esp + 0x144], 0
jmp 0x6642662d
mov eax, dword [esp + 0x138]
mov dword [esp], 0
lea ecx, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.66797610
sub esp, 8
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0x134], eax
jge 0x664274f1
mov edx, dword [esp + 0x80]
jmp 0x66426677
mov esi, ebx
add ebx, 4
mov dword [esi], ecx
cmp edi, ebx
jne 0x66426760
jmp 0x66426788
mov dword [esp + 0x7c], 0
xor ebp, ebp
mov byte [esp + 0x64], 1
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x20], 0
jmp 0x664265d4
mov eax, dword [esp + 0x138]
xor ecx, ecx
lea ebp, [eax + 1]
xor eax, eax
jmp 0x664267e0
sub dword [esp + 0x74], ecx
mov dword [eax + 0x1c], ecx
mov byte [eax + 0x16], 1
jmp 0x66426b60
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], eax
jmp 0x66426e38
mov esi, dword [esp + 0x88]
jmp 0x66426718