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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov esi, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
movzx eax, byte [eax + 0x53]
mov byte [esp + 0x57], al
test al, al
jne 0x666111d9
lea eax, [ecx + ecx*2]
mov edi, eax
lea eax, [esi + 0x1e8]
shl edi, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
add edi, dword [edx + 0x14]
mov ebp, dword [edi]
mov dword [esp + 0x20], edi
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x666111e8
call fcn.6659eee0
mov dword [esp + 0x58], eax
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x30], eax
mov ebx, eax
cmp al, 0x31
je 0x6661120a
cmp dword [esp + 0x30], 0x32
je 0x666116c8
mov ecx, dword [ebp + 0x10]
xor eax, eax
xor edx, edx
test ecx, ecx
je 0x66610e3e
mov eax, dword [esp + 0x34]
mov edx, ecx
call fcn.6659eee0
mov edi, dword [esp + 0x20]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
mov dword [esi + 0x1e8], 0
mov eax, dword [esp + 0x34]
mov edx, ebp
call fcn.6659eee0
mov edi, dword [esi + 0x1e8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
test edi, edi
je 0x66610e79
mov eax, dword [esp + 0x20]
or word [eax + 0xa], 0x1000
mov edi, dword [ebp + 4]
mov eax, edi
and eax, 1
mov dword [esp + 0x68], eax
je 0x666112a8
mov eax, dword [esi + 0x1ec]
mov edx, dword [ebp + 0x24]
test eax, eax
jle 0x66611880
xor ecx, ecx
jmp 0x66610eab
add ecx, 1
cmp ecx, eax
je 0x66611880
cmp edx, dword [esi + ecx*4 + 0x1f0]
jne 0x66610ea0
mov eax, 1
xor edx, edx
xor esi, esi
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov ecx, edx
mov edx, dword [esp + 0x4c]
or esi, eax
mov eax, dword [esp + 0x48]
or ecx, edx
mov dword [esp + 0x28], esi
add eax, 0xffffffff
mov dword [esp + 0x2c], ecx
adc edx, 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x2c]
shrd eax, edx, 1
shr edx, 1
cmp eax, dword [esp + 0x48]
mov eax, edx
sbb eax, dword [esp + 0x4c]
jae 0x66611880
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x30], 0x31
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], edx
mov dword [esi + 0x14], 0xffffffff
mov dword [esi + 0x10], 0xffffffff
mov word [esi + 0xc], cx
je 0x66610f68
sub ebx, 0x2d
cmp bl, 0xc
ja 0x666111a0
mov eax, 0x1f21
bt eax, ebx
jae 0x666111a0
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jne 0x66610f7f
jmp 0x66610f85
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x66610f85
test byte [ebx + 5], 0x10
jne 0x66610f78
mov esi, dword [ebp + 0x10]
test esi, esi
jne 0x66610f97
jmp 0x66610f9d
mov esi, dword [esi + 0xc]
test esi, esi
je 0x66610f9d
test byte [esi + 5], 0x10
jne 0x66610f90
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and edx, dword [ecx + 0x20]
and eax, dword [ecx + 0x24]
or eax, edx
cmp eax, 1
mov eax, dword [ecx + 0x1c]
sbb edi, edi
and di, 0x17ff
add di, 0x800
test eax, eax
jle 0x66610fd4
mov edx, dword [ebx + 0x14]
lea eax, [eax + eax*4 - 5]
lea eax, [edx + eax*4]
mov ebx, dword [eax + 4]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
call fcn.665bf6f0
test eax, eax
je 0x66611051
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x18], eax
mov eax, 1
cmp edx, 0x31
je 0x66611047
mov eax, 0x100
cmp edx, 0x32
je 0x66611047
mov eax, pe_nt_image_headers32
cmp edx, 0x2d
je 0x66611047
lea ecx, [edx - 0x35]
mov eax, 2
shl eax, cl
mov edx, dword [esp + 0x20]
and eax, edi
mov word [edx + 0xc], ax
cmp dword [esp + 0x30], 0x2d
je 0x66611560
test esi, esi
je 0x66611092
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 8], ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp], esi
call fcn.665bf6f0
test eax, eax
jne 0x666115a4
cmp dword [esp + 0x30], 0x32
je 0x66611f90
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
test dl, dl
jne 0x666110ce
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx]
mov esi, edx
cmp cl, 0xaf
jne 0x666110bc
movzx ecx, byte [edx + 2]
cmp cl, 0xb0
je 0x666118a0
cmp cl, 0x89
je 0x66611800
mov edi, dword [esp + 0x24]
movzx ecx, byte [edi + 8]
cmp al, 0x31
jne 0x666115f8
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x1c]
test edi, edi
jne 0x666111c0
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0xb0
jne 0x666111c0
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + 0x34]
test esi, esi
jne 0x666111c0
mov ebx, dword [eax + 0x44]
test ebx, ebx
jne 0x666111c0
cmp cl, 0x2c
jne 0x666111c0
mov edi, dword [esp + 0x24]
xor esi, esi
mov eax, 0xffffffb0
cmp al, 0xb0
je 0x66612eca
mov ecx, 1
cmp al, 0x89
jne 0x6661113f
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
cmp esi, ecx
jge 0x666111c0
mov ecx, 2
mov edx, ebp
mov eax, edi
add esi, 1
call fcn.6659e570
mov edx, edi
mov ecx, eax
lea ebx, [eax + eax*2]
mov eax, dword [edi + 0x14]
shl ebx, 4
mov dword [eax + ebx + 0x1c], esi
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x44]
add ebx, eax
add eax, dword [esp + 0x38]
mov dword [ebx + 0x10], edx
movzx edx, word [eax + 8]
mov word [ebx + 8], dx
add byte [eax + 0xe], 1
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp al, 0xaf
jne 0x66611126
movzx eax, byte [edx + 2]
jmp 0x66611126
movzx eax, byte [ebp]
cmp al, 0x30
jne 0x666112c0
mov eax, dword [esp + 0x24]
cmp byte [eax + 8], 0x2c
je 0x66612080
lea esi, [esi]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, dword [edi + 0x14]
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
or dword [eax + 0x20], edi
or dword [eax + 0x24], ebp
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [ebp]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], eax
mov ebx, eax
cmp al, 0x31
jne 0x66610e1d
mov eax, dword [esp + 0x3c]
mov edx, ebp
call fcn.665bb010
mov edi, eax
test eax, eax
jne 0x666111d9
mov ecx, dword [ebp + 0x14]
test byte [ebp + 5], 8
jne 0x66612168
test ecx, ecx
je 0x66611b20
mov eax, dword [ecx]
mov dword [esp + 0x28], 0
test eax, eax
jle 0x666125ee
mov dword [esp + 0x68], ebp
xor eax, eax
mov ebp, dword [esp + 0x34]
mov byte [esp + 0x48], bl
mov ebx, ecx
mov dword [esp + 0x60], esi
mov esi, eax
lea esi, [esi]
nop
lea eax, [edi + edi*4]
mov edx, dword [ebx + eax*4 + 4]
test edx, edx
je 0x66611278
mov eax, ebp
call fcn.6659eee0
or dword [esp + 0x28], eax
or esi, edx
add edi, 1
cmp edi, dword [ebx]
jl 0x66611260
mov edx, esi
movzx ebx, byte [esp + 0x48]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edi
jmp 0x66610e48
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
jmp 0x66610f21
cmp al, 0x2b
je 0x66611cc0
cmp al, 0x14
jne 0x666116e0
and edi, 0x20
je 0x666115f0
mov edi, dword [esp + 0x50]
test byte [edi + 0x4e], 2
jne 0x666115f0
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 0x14]
mov edi, dword [esp + 0x38]
mov esi, dword [edx + edi]
mov edx, dword [esi + 0x14]
test byte [edx + 4], 8
jne 0x666115f0
mov edi, dword [edx + 0x44]
test edi, edi
jne 0x666115f0
mov ebx, dword [edx + 0x34]
test ebx, ebx
jne 0x666115f0
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x666115f0
mov edi, dword [edx + 0x3c]
test edi, edi
jne 0x666115f0
mov eax, dword [esp + 0x24]
mov ecx, 4
lea edi, [esp + 0x9c]
add edx, 0x24
mov eax, dword [eax]
mov eax, dword [eax]
mov ebx, dword [eax]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x48], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [edx - 4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x48]
call fcn.665a69c0
test eax, eax
jne 0x6661109d
cmp dword [esp + 0x9c], 0
je 0x6661109d
mov dword [esp], 0
xor ecx, ecx
mov edx, esi
mov eax, ebx
call fcn.665a7430
cmp byte [ebx + 0x53], 0
mov esi, eax
jne 0x66613418
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x28], eax
test edx, edx
je 0x666113b6
mov eax, ebx
call fcn.66597980
mov edx, dword [esp + 0x28]
xor eax, eax
mov ecx, 4
lea edi, [esp + 0x9c]
mov dword [edx + 0x1c], 0
lea edx, [edx + 0x24]
rep stosd dword es:[edi], eax
mov eax, dword [edx - 4]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x48]
call fcn.665a69c0
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x66679f51
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x68], eax
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x58], eax
cmp edx, eax
je 0x66613476
test byte [edi + 5], 2
je 0x6661349e
mov eax, dword [edi + 0x10]
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x30]
call fcn.665b5090
test eax, eax
je 0x66613489
mov eax, dword [eax]
mov dword [esp + 0x98], eax
test eax, eax
je 0x6661145b
mov dword [esp], eax
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x30]
call fcn.6658c210
mov edx, dword [edi + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
and dword [esi + 4], 0xffffffdf
mov byte [esi], 0x31
mov dword [esi + 0xc], eax
cmp byte [edx], 0xb0
je 0x666133ec
mov eax, dword [esp + 0x30]
mov ecx, edx
xor edx, edx
mov eax, dword [eax]
call fcn.66599380
mov edx, dword [esp + 0x28]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x68]
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
test eax, eax
je 0x666133dc
mov edx, dword [eax]
mov ecx, dword [edx + 0xc]
cmp ecx, edi
je 0x666134af
mov dword [edx + 0x10], 0
mov eax, ebx
mov dword [edx + 0xc], 0
mov dword [esp + 0x30], ecx
call fcn.665978b0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov edx, edi
mov eax, ebx
call fcn.665978b0
mov edi, dword [esp + 0x24]
mov ecx, 3
mov edx, esi
mov eax, edi
call fcn.6659e570
mov edx, edi
mov ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
imul eax, ebx, 0x30
mov edx, dword [edi + 0x14]
mov edi, dword [esp + 0x44]
add eax, edx
add edx, dword [esp + 0x38]
movzx ecx, word [edx + 8]
mov dword [eax + 0x10], edi
mov word [eax + 8], cx
or word [edx + 0xa], 8
add byte [edx + 0xe], 1
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov eax, dword [esp + 0x20]
or word [eax + 0xa], 0x800
test esi, esi
je 0x6661109d
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 8], 0x2d
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp], esi
call fcn.665bf6f0
test eax, eax
je 0x6661109d
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x14]
test eax, eax
js 0x666118b0
mov esi, dword [esp + 0x50]
mov dword [esp], 0
xor ecx, ecx
mov edx, ebp
mov eax, esi
call fcn.665a7430
cmp byte [esi + 0x53], 0
mov ebx, eax
je 0x666121bb
test eax, eax
je 0x666111d9
mov edx, eax
mov eax, esi
call fcn.665978b0
jmp 0x666111d9
mov edi, dword [esp + 0x24]
movzx ecx, byte [edi + 8]
cmp cl, 0x2c
jne 0x666111c0
cmp al, 0xab
jne 0x66611b2f
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x666111c0
cmp dword [ebx], 2
jne 0x666111c0
mov edi, dword [ebx + 0x18]
cmp byte [edi], 0xa6
je 0x6661254c
mov edi, dword [ebx + 4]
cmp byte [edi], 0xa6
jne 0x666111c0
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x666111c0
mov edx, dword [eax + 0x38]
test edx, edx
je 0x666111c0
mov eax, dword [eax + 0x40]
test eax, eax
je 0x666134cd
mov edx, dword [esp + 0x50]
jmp 0x66611667
mov eax, dword [eax + 0x18]
test eax, eax
je 0x66679f41
cmp edx, dword [eax]
jne 0x6661165c
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov ecx, dword [edx + 0x48]
test ecx, ecx
je 0x666111c0
lea edx, [esp + 0x98]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x94]
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 8]
mov dword [esp + 4], 2
mov dword [esp + 8], edx
mov dword [esp], eax
call ecx
cmp eax, 0x95
jle 0x666111c0
mov byte [esp + 0x57], al
mov ebx, dword [ebx + 0x18]
xor esi, esi
mov dword [esp + 0x30], ebp
jmp 0x66611bde
mov eax, dword [esp + 0x20]
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
jmp 0x66610e48
cmp al, 0x33
jne 0x66611990
mov ebx, dword [ebp + 0xc]
cmp byte [ebx], 0xa6
jne 0x666115f0
cmp word [ebx + 0x20], 0
js 0x666115f0
mov esi, dword [esp + 0x68]
test esi, esi
jne 0x666115f0
mov eax, dword [esp + 0x50]
mov edx, 0x34
xor ecx, ecx
call fcn.6658bdd0
mov esi, eax
test eax, eax
je 0x66611755
lea edi, [eax + 4]
mov ecx, eax
mov dword [eax], 0
and edi, 0xfffffffc
mov dword [eax + 0x30], 0
xor eax, eax
sub ecx, edi
add ecx, 0x34
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, 0xffffffff
mov byte [esi], 0x78
mov word [esi + 0x22], cx
mov dword [esi + 0x18], 1
mov dword [esp], 0
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov edx, ebx
call fcn.665a7430
mov dword [esp], esi
mov edx, 0x36
mov ecx, eax
mov eax, dword [esp + 0x3c]
call fcn.665bb3d0
mov ecx, 0x83
mov edx, eax
mov eax, dword [esp + 0x24]
call fcn.6659e570
mov edx, eax
test eax, eax
je 0x6661109d
mov edi, dword [esp + 0x24]
imul esi, edx, 0x30
mov ecx, dword [ebx + 0x1c]
mov eax, dword [edi + 0x14]
add esi, eax
mov dword [esi + 0x14], ecx
movsx ecx, word [ebx + 0x20]
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], ecx
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x24], 0
mov word [esi + 0xc], 4
call fcn.6658d5d0
mov eax, dword [esp + 0x38]
add eax, dword [edi + 0x14]
or word [eax + 0xa], 8
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x28]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], eax
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + 0x1c]
mov ebx, dword [ecx]
cmp ebx, 1
jle 0x666110ce
mov edi, dword [ebp + 0x10]
movzx ecx, byte [edi]
cmp cl, 0xaf
jne 0x66611820
movzx ecx, byte [edi + 2]
cmp cl, 0xb0
je 0x66612070
cmp cl, 0x89
jne 0x666110ce
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx]
cmp ebx, ecx
jne 0x666110ce
test byte [edx + 5], 8
je 0x66611852
test byte [edi + 5], 8
jne 0x666110ce
mov edi, dword [esp + 0x24]
movzx ecx, byte [edi + 8]
cmp cl, 0x2c
je 0x6661236b
cmp al, 0x31
jne 0x666111c0
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x666110f0
jmp 0x666111c0
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.ON_clause_references_tables_to_its_right
mov dword [esp], eax
call fcn.665b3dd0
jmp 0x666111d9
mov ecx, dword [edx + 0x14]
mov ebx, dword [ecx]
jmp 0x66611808
xor eax, eax
mov edx, dword [ebp + 0xc]
mov ebx, ebp
mov word [esp + 0x30], ax
cmp byte [edx], 0xb0
mov ecx, dword [ebx + 0x10]
je 0x666118f1
cmp byte [ecx], 0xb0
je 0x666118f1
mov eax, dword [esp + 0x3c]
call fcn.665b5090
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
call fcn.665b5090
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
cmp dword [esp + 0x48], eax
je 0x666118f8
xor dword [ebx + 4], 0x200
mov dword [ebx + 0xc], ecx
movzx ecx, byte [ebx]
mov dword [ebx + 0x10], edx
cmp cl, 0x35
jbe 0x66611911
sub ecx, 0x36
xor ecx, 2
add ecx, 0x36
mov byte [ebx], cl
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x9c]
mov dword [esi + 0x24], edx
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x60]
mov dword [esi + 0x2c], edx
movzx edx, cl
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x28], eax
mov eax, 1
cmp cl, 0x31
je 0x66611974
mov eax, 0x100
cmp edx, 0x32
je 0x66611974
mov eax, pe_nt_image_headers32
cmp edx, 0x2d
je 0x66611974
lea ecx, [edx - 0x35]
mov eax, 2
shl eax, cl
add ax, word [esp + 0x30]
and edi, eax
mov word [esi + 0xc], di
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
cmp al, 0xab
jne 0x666110a1
mov edi, dword [esp + 0x24]
cmp byte [edi + 8], 0x2c
jne 0x666115f0
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x666110a1
mov eax, dword [esp + 0x3c]
mov ebx, dword [edx]
mov edx, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], 1
mov dword [esp + 0x6c], eax
call fcn.6659f700
test eax, eax
je 0x6661109d
mov edi, dword [eax + 4]
mov dword [esp + 0x88], edi
and edi, 4
je 0x6661109d
mov eax, dword [eax + 8]
movzx edx, word [eax]
mov word [esp + 0x94], dx
movzx eax, byte [eax + 2]
mov byte [esp + 0x96], al
mov edx, dword [ebp + 0x14]
cmp ebx, 2
jg 0x66612e80
mov byte [esp + 0x97], 0
mov esi, dword [edx + 4]
test esi, esi
jne 0x66611a3b
jmp 0x666134d2
mov esi, dword [esi + 0xc]
test esi, esi
je 0x66679f48
mov ebx, dword [esi + 4]
and ebx, 0x1000
jne 0x66611a30
mov eax, dword [edx + 0x18]
mov dword [esp + 0x70], eax
movzx eax, byte [esi]
mov dword [esp + 0x7c], eax
cmp eax, 0x9b
je 0x66612d9d
cmp dword [esp + 0x7c], 0x74
jne 0x6661109d
mov edi, dword [esi + 8]
test edi, edi
je 0x6661109d
movzx eax, byte [edi]
mov dword [esp + 0x30], 0
mov byte [esp + 0x74], al
test al, al
je 0x6661109d
movzx eax, byte [esp + 0x94]
mov dword [esp + 0x78], ebp
xor ecx, ecx
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x95]
mov byte [esp + 0x48], al
movzx eax, byte [esp + 0x96]
mov byte [esp + 0x5c], al
movzx eax, byte [esp + 0x97]
mov byte [esp + 0x58], al
movzx eax, byte [esp + 0x74]
jmp 0x66611ad3
mov ecx, edx
test al, al
je 0x6661347e
cmp byte [esp + 0x28], al
je 0x66612e43
cmp byte [esp + 0x48], al
je 0x66612e43
cmp byte [esp + 0x5c], al
je 0x66612e43
movzx ebp, byte [edi + ecx + 1]
lea edx, [ecx + 1]
cmp byte [esp + 0x58], al
mov ebx, edx
mov eax, ebp
jne 0x66611ac9
test al, al
je 0x66612c99
add ecx, 2
movzx eax, byte [edi + ecx]
mov ebx, ecx
jmp 0x66611acb
mov dword [esp + 0x28], 0
xor edx, edx
jmp 0x6661128e
lea edx, [eax - 0x33]
cmp dl, 1
jbe 0x66611b3f
cmp al, 0xaa
jne 0x666111c0
mov edi, dword [ebp + 0xc]
xor edx, edx
mov ebx, dword [ebp + 0x10]
cmp byte [edi], 0xa6
je 0x66612407
test ebx, ebx
je 0x66611b5d
cmp byte [ebx], 0xa6
je 0x6661251c
lea esi, [edx - 1]
cmp al, 0x34
je 0x66612421
cmp al, 0xaa
je 0x666123fd
movzx ecx, byte [esp + 0x57]
cmp al, 0x33
mov eax, 0x46
cmove ecx, eax
mov byte [esp + 0x57], cl
test edx, edx
je 0x666111c0
mov dword [esp + 0x30], ebp
jmp 0x66611bde
mov eax, dword [esp + 0x34]
mov edx, ebx
call fcn.6659eee0
mov dword [esp + 0x20], eax
mov ebp, edx
test edi, edi
je 0x66611ca0
mov eax, dword [esp + 0x34]
mov edx, edi
call fcn.6659eee0
and eax, dword [esp + 0x20]
and edx, ebp
or edx, eax
je 0x66611ca0
mov eax, edi
lea edx, [esi - 1]
mov edi, ebx
cmp esi, 1
jne 0x666111c0
mov ebx, eax
mov esi, edx
test ebx, ebx
jne 0x66611b98
test edi, edi
je 0x66611bf1
mov eax, dword [esp + 0x34]
mov edx, edi
call fcn.6659eee0
mov dword [esp + 0x20], 0
xor eax, eax
xor ebp, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov edx, 0x2e
xor ecx, ecx
call fcn.665bb3d0
mov edx, eax
mov eax, dword [esp + 0x30]
test byte [eax + 4], 1
je 0x66611c2a
test edx, edx
je 0x66611c2a
mov eax, dword [eax + 0x24]
or dword [edx + 4], 1
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x24]
mov ecx, 3
call fcn.6659e570
mov edx, eax
mov eax, dword [esp + 0x24]
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, eax
add eax, dword [esp + 0x38]
mov dword [ecx + 0x20], edx
mov edx, dword [edi + 0x1c]
mov dword [ecx + 0x24], ebp
mov dword [ecx + 0x14], edx
movsx edx, word [edi + 0x20]
mov dword [ecx + 0x18], edx
mov edx, 0x40
mov word [ecx + 0xc], dx
movzx edx, byte [esp + 0x57]
mov byte [ecx + 0xf], dl
mov edx, dword [esp + 0x44]
mov dword [ecx + 0x10], edx
movzx edx, word [eax + 8]
mov word [ecx + 8], dx
mov edx, dword [eax + 0x2c]
add byte [eax + 0xe], 1
or word [eax + 0xa], 8
mov eax, dword [eax + 0x28]
mov dword [ecx + 0x2c], edx
mov dword [ecx + 0x28], eax
jmp 0x66611bca
mov dword [esp], 0
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov edx, ebx
call fcn.665a7430
jmp 0x66611bfd
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov esi, eax
mov eax, dword [esp + 0x38]
add eax, dword [esi + 0x14]
mov dword [esp + 0x78], edi
mov edi, dword [edi]
mov dword [esp + 0x74], eax
mov eax, dword [eax]
mov dword [esp + 0x88], edi
mov edi, dword [edi]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x5c], edi
test edi, edi
je 0x666121a6
mov edx, 0x1a0
xor ecx, ecx
mov eax, edi
call fcn.6658bdd0
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x6661235b
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
mov dword [ebx + 0x19c], 0
and edi, 0xfffffffc
lea edx, [ebx + 0x18]
sub ecx, edi
add ecx, 0x1a0
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edi, dword [esp + 0x74]
mov dword [edi + 0x18], ebx
or word [edi + 0xa], 0x10
lea edi, [ebx + 0x1c]
and edi, 0xfffffffc
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x194], 0
sub ecx, edi
add ecx, 0x180
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x14], edx
mov ecx, 0x2b
mov edi, ebx
mov byte [ebx + 9], 0
mov eax, dword [esp + 0x78]
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov edx, dword [esp + 0x7c]
mov dword [ebx], eax
mov eax, ebx
mov dword [ebx + 0x10], 8
call fcn.6659e860
mov eax, dword [ebx + 0xc]
lea esi, [eax - 1]
mov ebx, esi
test esi, esi
js 0x666129bf
mov esi, edi
mov edi, dword [esp + 0x40]
lea esi, [esi]
nop
mov ecx, ebx
mov edx, esi
mov eax, edi
call fcn.66610da0
sub ebx, 1
jae 0x66611dc0
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x53], 0
jne 0x66611f71
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x14]
lea esi, [eax - 1]
mov dword [esp + 0x20], esi
test esi, esi
js 0x666129cd
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], 0xffffffff
mov esi, edi
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x70], eax
jmp 0x66611e57
movzx ebx, word [esi + 0xa]
test bl, 8
je 0x66611fd0
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x58]
setne al
and al, byte [esp + 0x28]
add esi, 0x30
test al, al
je 0x66613391
sub dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
movzx edx, word [esi + 0xc]
not eax
shr eax, 0x1f
mov dword [esp + 0x28], eax
test dx, 0x1ff
jne 0x66611e30
mov eax, dword [esp + 0x5c]
mov edx, 0x198
xor ecx, ecx
call fcn.6658bdd0
mov ebx, eax
test eax, eax
je 0x66612182
lea edx, [eax + 0x18]
mov ecx, 0x400
lea edi, [eax + 0x1c]
mov dword [esi + 0x18], eax
mov word [esi + 0xc], cx
and edi, 0xfffffffc
mov ecx, edx
sub ecx, edi
or word [esi + 0xa], 0x20
add ecx, 0x180
mov dword [eax + 0x18], 0
mov dword [eax + 0x194], 0
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 0x2c
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov byte [ebx + 9], 0
mov dword [ebx + 0x14], edx
mov edx, dword [esi]
mov dword [ebx], eax
mov eax, ebx
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 8
call fcn.6659e860
mov edi, dword [ebx + 0xc]
sub edi, 1
js 0x66611f30
mov dword [esp + 0x68], esi
mov ebp, dword [esp + 0x70]
mov esi, edi
mov edi, dword [esp + 0x40]
lea esi, [esi]
mov ecx, esi
mov edx, ebx
mov eax, edi
call fcn.66610da0
sub esi, 1
jae 0x66611f18
mov dword [esp + 0x70], ebp
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x53], 0
je 0x6661242b
mov eax, dword [esp + 0x30]
mov edx, 0x200
mov ebp, dword [esp + 0x8c]
mov dword [eax + 0x198], 0
mov dword [eax + 0x19c], 0
mov eax, dword [esp + 0x74]
mov word [eax + 0xc], dx
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, dword [edi + 0x14]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov eax, ebx
call fcn.66583070
test eax, eax
jne 0x6661109d
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov byte [ebp], 0xa9
or dword [ebp + 4], 0x20000000
mov dword [ebp + 8], str.false
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov word [eax + 0xc], bx
jmp 0x666111c0
mov ebp, dword [esp + 0x70]
mov edi, dword [esi + 0x14]
and ebx, 2
mov eax, dword [ebp + 0x1ec]
test eax, eax
jle 0x66612d79
xor ecx, ecx
jmp 0x66611ffb
add ecx, 1
cmp ecx, eax
je 0x66612302
cmp edi, dword [ebp + ecx*4 + 0x1f0]
jne 0x66611ff0
mov edi, 1
mov dword [esp + 0x70], ebp
xor ebp, ebp
shld ebp, edi, cl
shl edi, cl
test cl, 0x20
je 0x6661201d
mov ebp, edi
xor edi, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebp
test bx, bx
jne 0x666128eb
and dword [esp + 0x48], edi
mov eax, dword [esp + 0x48]
and dword [esp + 0x58], ebp
mov edi, dword [esp + 0x58]
or eax, edi
setne al
and al, byte [esp + 0x28]
and edx, 2
jne 0x66612340
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
jmp 0x66611e4c
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx]
jmp 0x6661183a
mov eax, dword [ebp + 0x14]
xor esi, esi
mov ebx, 0x39
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov edi, dword [eax + edi + 4]
test edi, edi
je 0x666120bc
mov dword [esp], 0
mov eax, dword [esp + 0x50]
mov edx, edi
xor ecx, ecx
call fcn.665a7430
mov edi, eax
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x666120d7
mov dword [esp], 0
mov eax, dword [esp + 0x50]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
mov dword [esp], edi
mov eax, dword [esp + 0x3c]
mov ecx, edx
mov edx, ebx
call fcn.665bb3d0
mov edx, eax
test eax, eax
je 0x666120fc
mov eax, dword [ebp + 4]
and eax, 1
or dword [edx + 4], eax
mov eax, dword [ebp + 0x24]
mov dword [edx + 0x24], eax
mov ecx, 3
mov eax, esi
call fcn.6659e570
mov edx, esi
mov ebx, eax
mov ecx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov edx, dword [esp + 0x38]
add edx, dword [esi + 0x14]
lea eax, [ebx + ebx*2]
mov edi, dword [esp + 0x44]
movzx ecx, word [edx + 8]
shl eax, 4
mov ebx, 0x37
add eax, dword [esi + 0x14]
add dword [esp + 0x20], 0x14
mov dword [eax + 0x10], edi
mov word [eax + 8], cx
mov eax, dword [esp + 0x20]
add byte [edx + 0xe], 1
cmp eax, 0x28
jne 0x66612096
movzx eax, byte [ebp]
mov dword [esp + 0x20], edx
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov eax, dword [esp + 0x34]
mov edx, ecx
call fcn.6659f210
mov edi, dword [esp + 0x20]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
jmp 0x66610e48
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x58]
mov dword [esp + 0x68], 0
setne al
mov dword [esp + 0x6c], 0
and al, byte [esp + 0x28]
jmp 0x66611e4c
mov eax, 0x1a0
xor edx, edx
call fcn.6658bcf0
mov dword [esp + 0x30], eax
jmp 0x66611d06
mov esi, dword [esp + 0x24]
mov edx, eax
mov ecx, 3
mov eax, esi
call fcn.6659e570
test eax, eax
je 0x666111d9
mov edx, dword [esi + 0x14]
lea eax, [eax + eax*2]
shl eax, 4
lea esi, [edx + eax]
mov eax, dword [esp + 0x44]
add edx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esi + 0x10], eax
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add byte [edx + 0xe], 1
cmp dword [esp + 0x30], 0x2d
jne 0x66612209
or word [esi + 0xa], 0x800
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [ebx + 0xc]
mov word [esp + 0x30], cx
or word [eax + 0xa], 8
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x80
jne 0x666118bc
movzx eax, byte [ebx]
sub eax, 0x2d
test al, 0xf7
jne 0x666118bc
test byte [ebx + 4], 1
jne 0x666118bc
mov eax, edx
call fcn.665833a0
mov byte [esp + 0x30], al
mov eax, dword [ebx + 0x10]
call fcn.665833a0
movzx ecx, byte [esp + 0x30]
mov edx, dword [ebx + 0xc]
cmp cl, al
je 0x66612274
cmp cl, 0x42
jle 0x66612eff
cmp al, 0x42
jle 0x66612eff
mov eax, dword [ebx + 0x10]
test byte [ebx + 5], 2
je 0x66612e70
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x3c]
call fcn.665b5090
test eax, eax
je 0x666122e6
cmp dword [eax + 0xc], 0x665879e0
je 0x666122e6
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
call fcn.665b4ee0
mov ecx, eax
test eax, eax
je 0x66612f19
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
call fcn.665b4ee0
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x66612f0b
mov edx, dword [eax]
mov eax, dword [ecx]
call fcn.66581700
test eax, eax
jne 0x66613409
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0xc]
or word [eax + 0xc], 0x800
mov eax, 0x800
mov word [esp + 0x30], ax
jmp 0x666118bc
mov dword [esp + 0x70], ebp
test bx, bx
jne 0x6661298b
and edx, 2
je 0x666125f5
mov dword [esp + 0x48], 0
xor eax, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
and dword [esp + 0x68], edi
and dword [esp + 0x6c], ebp
jmp 0x66611e4c
mov eax, dword [esp + 0x74]
mov dword [eax + 0x18], 0
jmp 0x66611f71
mov dword [esp + 0x30], ebx
mov edx, esi
mov ebx, dword [esp + 0x24]
xor edi, edi
mov esi, dword [esp + 0x3c]
mov ecx, edi
mov eax, esi
call fcn.665bb4c0
mov edx, dword [ebp + 0x10]
mov ecx, edi
mov dword [esp + 0x20], eax
mov eax, esi
call fcn.665bb4c0
movzx edx, byte [ebp]
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
mov eax, esi
call fcn.665bb3d0
mov edx, eax
test eax, eax
je 0x666123bb
mov eax, dword [ebp + 4]
and eax, 1
or dword [edx + 4], eax
mov eax, dword [ebp + 0x24]
mov dword [edx + 0x24], eax
mov ecx, 1
mov eax, ebx
add edi, 1
call fcn.6659e570
mov edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
cmp edi, dword [esp + 0x30]
je 0x666123e2
mov edx, dword [ebp + 0xc]
jmp 0x6661237b
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
xor ebp, ebp
add eax, dword [edi + 0x14]
or word [eax + 0xa], 6
mov word [eax + 0xc], bp
jmp 0x666111cb
mov byte [esp + 0x57], 0x45
jmp 0x66611b83
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x66611b50
mov esi, dword [ecx + 0x38]
xor edx, edx
test esi, esi
setne dl
jmp 0x66611b50
mov byte [esp + 0x57], 0x44
jmp 0x66611b83
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x14]
test edi, edi
jle 0x66611f45
mov dword [esp + 0x68], 0
mov ebp, dword [esp + 0x70]
xor ebx, ebx
mov edx, edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x80], esi
lea esi, [esi]
nop
mov ecx, dword [eax]
movzx ecx, byte [ecx]
sub ecx, 0x2d
cmp cl, 0xc
ja 0x66612510
mov edi, 0x1f31
bt edi, ecx
jae 0x66612510
mov esi, dword [ebp + 0x1ec]
mov edi, dword [eax + 0x14]
test esi, esi
jle 0x666124c0
xor ecx, ecx
jmp 0x66612497
add ecx, 1
cmp ecx, esi
je 0x666124c0
cmp edi, dword [ebp + ecx*4 + 0x1f0]
jne 0x66612490
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
or dword [esp + 0x6c], edi
xor esi, 1
shl esi, cl
or dword [esp + 0x68], esi
lea esi, [esi]
add ebx, 1
add eax, 0x30
cmp ebx, edx
jne 0x66612460
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x70], ebp
and dword [esp + 0x48], edi
mov eax, dword [esp + 0x48]
and dword [esp + 0x58], ebx
mov edi, dword [esp + 0x58]
mov dword [esp + 0x68], 0
mov esi, dword [esp + 0x80]
or eax, edi
mov dword [esp + 0x6c], 0
setne al
and al, byte [esp + 0x28]
jmp 0x66611e4c
cmp word [eax + 0xc], 0x40
jne 0x666124c0
jmp 0x6661247f
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x66611b5d
mov ecx, dword [ecx + 0x38]
test ecx, ecx
je 0x66611b5d
lea ecx, [edx + 1]
cmp al, 0x34
je 0x66612e54
mov esi, edx
mov edx, ecx
mov ecx, edi
mov edi, ebx
mov ebx, ecx
jmp 0x66611b68
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x66611629
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x66611629
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], 0
mov edx, str.match
mov dword [esp + 0x30], eax
mov eax, 0x6d
mov ecx, dword [esp + 0x30]
jmp 0x666125a1
movzx eax, byte [eax + 0x66690a80]
cmp byte [esi + 0x66690a80], al
jne 0x666125d0
movzx eax, byte [edx + 1]
add edx, 1
add ecx, 1
movzx esi, byte [ecx]
cmp esi, eax
jne 0x66612588
test esi, esi
jne 0x66612597
mov eax, dword [esp + 0x20]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x30], ebp
movzx eax, byte [eax*8 + 0x66689324]
mov byte [esp + 0x57], al
jmp 0x66611bde
add dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
cmp eax, 4
je 0x66611629
mov edx, dword [eax*8 + 0x66689320]
movzx eax, byte [edx]
jmp 0x6661257b
xor edx, edx
jmp 0x6661128e
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ebp, dword [esp + 0x8c]
mov dword [eax + 0x198], 0
mov dword [eax + 0x19c], 0
mov eax, dword [esp + 0x74]
mov word [eax + 0xc], 0x200
mov eax, dword [esp + 0x6c]
or eax, dword [esp + 0x68]
je 0x66611f71
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
lea esi, [eax - 1]
mov dword [esp + 0x28], 2
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x70], ebp
mov ebp, dword [esp + 0x78]
nop
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 0x14]
test esi, esi
js 0x6661274f
and word [ebx + 0xa], 0xffbf
mov edi, dword [ebx + 0x14]
cmp dword [esp + 0x20], edi
je 0x66612740
mov eax, dword [ebp + 0x1ec]
test eax, eax
jle 0x66612740
xor ecx, ecx
jmp 0x666126a3
add ecx, 1
cmp ecx, eax
je 0x66612740
cmp edi, dword [ebp + ecx*4 + 0x1f0]
jne 0x66612698
mov eax, 1
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x666126c1
mov edx, eax
xor eax, eax
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x68]
and eax, edx
mov edx, dword [esp + 0x6c]
and edx, ecx
or edx, eax
je 0x66612740
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], eax
mov eax, edi
cmp eax, edi
je 0x6661270b
lea esi, [esi]
nop
and word [ebx + 0xa], 0xffbf
sub esi, 1
add ebx, 0x30
cmp esi, 0xffffffff
je 0x666127de
mov eax, dword [ebx + 0x14]
cmp eax, edi
jne 0x666126f0
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx + 0x18]
je 0x66612760
cmp dword [esp + 0x28], 1
je 0x6661274f
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], 1
mov eax, dword [eax + 0xc]
lea esi, [eax - 1]
jmp 0x66612660
sub esi, 1
add ebx, 0x30
cmp esi, 0xffffffff
jne 0x6661266f
mov ebp, dword [esp + 0x70]
jmp 0x66611f71
cmp dword [esp + 0x20], 0xfffffffe
mov eax, dword [ebx]
je 0x666127a0
mov eax, dword [eax + 0x10]
call fcn.665833a0
movsx edx, al
mov eax, dword [ebx]
mov dword [esp + 0x48], edx
mov eax, dword [eax + 0xc]
call fcn.665833a0
mov edx, dword [esp + 0x48]
test edx, edx
je 0x66612791
movsx eax, al
cmp eax, edx
jne 0x66612714
or word [ebx + 0xa], 0x40
jmp 0x666126f5
mov edx, dword [eax + 0xc]
test edx, edx
je 0x666127d2
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x666127d2
mov dword [esp], 0xffffffff
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x88]
call fcn.665bf090
test eax, eax
jne 0x66612714
mov eax, dword [ebx]
jmp 0x66612769
cmp dword [esp + 0x58], edx
jne 0x66612714
jmp 0x66612769
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x70]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x14]
sub esi, 1
js 0x66612ed4
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x78]
xor edx, edx
xor edi, edi
lea esi, [esi]
test byte [ebx + 0xa], 0x40
je 0x66612840
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x6661282b
mov dword [esp], 0
mov eax, dword [esp + 0x5c]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
mov eax, dword [ebp]
mov ecx, edx
mov edx, edi
mov eax, dword [eax]
call fcn.66599380
mov edi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
sub esi, 1
add ebx, 0x30
cmp esi, 0xffffffff
jne 0x66612808
mov ebp, dword [esp + 0x20]
test edx, edx
je 0x66612867
mov dword [esp], 0
mov eax, dword [esp + 0x5c]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
mov dword [esp], 0
mov eax, dword [esp + 0x88]
mov ecx, edx
mov edx, 0x31
call fcn.665bb3d0
mov edx, eax
test eax, eax
je 0x66612c81
mov esi, dword [esp + 0x7c]
mov ecx, 3
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
and eax, 1
or dword [edx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edx + 0x14], edi
mov edi, dword [esp + 0x24]
mov dword [edx + 0x24], eax
mov eax, edi
call fcn.6659e570
mov edx, edi
mov ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov eax, dword [edi + 0x14]
lea edx, [ebx + ebx*2]
mov edi, dword [esp + 0x44]
shl edx, 4
add edx, eax
add eax, dword [esp + 0x38]
movzx ecx, word [eax + 8]
mov dword [edx + 0x10], edi
mov word [edx + 8], cx
add byte [eax + 0xe], 1
jmp 0x66611f71
mov ecx, dword [esi + 0x10]
mov edi, dword [esp + 0x30]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [edi + 0x14]
mov ebx, dword [ecx + 0x14]
mov ebp, dword [esp + 0x70]
xor ecx, ecx
jmp 0x6661291b
add ecx, 1
cmp ecx, eax
je 0x666129b9
cmp dword [ebp + ecx*4 + 0x1f0], ebx
jne 0x66612910
mov edi, 1
mov dword [esp + 0x70], ebp
xor ebp, ebp
xor ebx, ebx
shld ebp, edi, cl
shl edi, cl
test cl, 0x20
mov eax, dword [esp + 0x84]
cmovne ebp, edi
mov ecx, dword [esp + 0x80]
cmovne edi, ebx
or ecx, edi
or eax, ebp
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
and dword [esp + 0x48], edi
mov eax, dword [esp + 0x48]
and dword [esp + 0x58], ebp
mov ebx, dword [esp + 0x58]
or eax, ebx
setne al
and al, byte [esp + 0x28]
jmp 0x6661204d
mov ecx, dword [esi + 0x10]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [edi + 0x14]
mov ebx, dword [ecx + 0x14]
jmp 0x666128fe
mov dword [esp + 0x70], ebp
jmp 0x6661295f
mov edi, dword [esp + 0x5c]
cmp byte [edi + 0x53], 0
jne 0x66611f71
mov edi, dword [esp + 0x30]
mov ecx, 0x200
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], 0xffffffff
mov dword [edi + 0x198], 0xffffffff
mov dword [edi + 0x19c], 0xffffffff
mov edi, dword [esp + 0x74]
mov word [edi + 0xc], cx
mov edi, dword [esp + 0x24]
mov byte [edi + 9], 1
cmp eax, 2
jne 0x66612646
mov eax, dword [esp + 0x30]
mov dword [esp + 0x58], 0
mov dword [esp + 0x70], ebp
mov ecx, dword [eax + 0x14]
jmp 0x66612a38
test ebx, ebx
je 0x66612c00
mov edi, dword [esp + 0x58]
mov eax, edi
add edi, 1
cmp word [ecx + 0xc], 0x400
mov dword [esp + 0x58], edi
je 0x66612c0a
test eax, eax
jne 0x66612c23
mov ebp, ecx
movzx eax, word [ecx + 0x3c]
xor ebx, ebx
lea esi, [esi]
cmp ax, 0x400
jne 0x66612a30
mov edx, dword [ecx + 0x48]
cmp dword [edx + 0xc], ebx
jle 0x66612a38
lea esi, [ebx + ebx*2]
shl esi, 4
add esi, dword [edx + 0x14]
je 0x66612a38
movzx edi, word [esi + 0xc]
movzx edx, word [ebp + 0xa]
or dx, word [esi + 0xa]
and edx, 0x80
jne 0x66612bf0
movzx edx, word [ebp + 0xc]
test dl, 0x3e
je 0x66612bf0
test di, 0x3e
je 0x66612bf0
or edi, edx
test di, 0xffe5
je 0x66612ac5
test di, 0xffd9
jne 0x66612bf0
mov edx, dword [esi]
mov dword [esp + 0x48], edx
mov edx, dword [edx + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [ebp]
mov dword [esp + 0x28], edx
mov edx, dword [edx + 0xc]
test edx, edx
je 0x66612c2c
cmp dword [esp + 0x20], 0
je 0x66612c2c
mov dword [esp], 0xffffffff
mov ecx, dword [esp + 0x20]
xor eax, eax
call fcn.665bf090
test eax, eax
jne 0x66612be4
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
movzx esi, di
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x66612c37
test ecx, ecx
je 0x66612c37
mov dword [esp], 0xffffffff
xor eax, eax
call fcn.665bf090
test eax, eax
jne 0x66612be4
mov eax, dword [ebp]
lea edx, [esi - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax]
test edx, esi
je 0x66612b79
and edi, 0x18
mov edx, edi
mov edi, 8
test dx, dx
jne 0x66612b79
mov edi, 0x20
mov edx, dword [esp + 0x28]
test edx, edx
je 0x66612be4
mov dword [esp], 0
mov edx, dword [esp + 0x28]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
test eax, eax
je 0x66612be4
movzx eax, di
cmp di, 2
je 0x66612e66
mov esi, 0x35
lea esi, [esi]
nop
mov ecx, esi
mov edi, 2
add esi, 1
sub ecx, 0x34
shl edi, cl
cmp edi, eax
jne 0x66612bb0
mov eax, esi
mov edi, dword [esp + 0x24]
mov ecx, 3
mov byte [edx], al
mov eax, edi
call fcn.6659e570
mov edx, edi
mov ecx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x14]
movzx eax, word [ecx + 0x3c]
nop
add ebx, 1
jmp 0x66612a68
lea esi, [ecx + 0x30]
mov edi, eax
jmp 0x66612a85
mov edx, dword [ecx + 0x18]
cmp dword [edx + 0xc], eax
jle 0x66612c23
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov ebp, eax
jne 0x66612a5b
mov ebp, dword [esp + 0x70]
jmp 0x6661262e
cmp dword [esp + 0x20], edx
jne 0x66612bf0
jmp 0x66612b16
cmp ecx, edx
jne 0x66612be4
mov eax, dword [esp + 0x24]
lea edx, [esi - 1]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax]
test edx, esi
je 0x66612b81
test di, 0x18
je 0x66612b74
mov dword [esp], 0
mov edx, dword [esp + 0x28]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
test eax, eax
je 0x66612be4
mov eax, 8
jmp 0x66612ba6
test edi, edi
je 0x66611f71
mov eax, dword [esp + 0x5c]
mov edx, edi
call fcn.66597980
jmp 0x66611f71
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x68], edx
xor eax, eax
cmp byte [edi + ebx - 1], 0xff
je 0x66612e20
cmp dword [esp + 0x68], 1
je 0x66612f39
mov dword [esp + 0x5c], 0
cmp byte [esp + 0x28], al
jne 0x66612cd5
xor eax, eax
cmp byte [edi + ebx + 1], 0
sete al
mov dword [esp + 0x5c], eax
mov dword [esp], edi
mov dword [esp + 0x98], edi
call sub.msvcrt.dll_strlen
mov dword [esp], 0
mov edx, 0x74
and eax, 0x3fffffff
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x98]
mov dword [esp + 0x48], eax
mov ecx, eax
mov eax, dword [esp + 0x6c]
call fcn.6658c010
mov dword [esp + 0x28], eax
test eax, eax
je 0x66612fe8
mov edi, dword [eax + 8]
mov edx, 1
movzx eax, byte [esp + 0x58]
sub edx, edi
mov dword [esp + 0x74], eax
xor eax, eax
mov byte [edi + ebx], 0
mov dword [esp + 0x58], edi
mov dword [esp + 0x78], edx
jmp 0x66612d60
mov eax, ecx
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
mov byte [ebx], dl
lea edx, [ebx + 1]
add ecx, ebx
mov dword [esp + 0x58], edx
cmp eax, dword [esp + 0x68]
jge 0x66612f4d
movsx ebx, byte [edi + eax]
lea ecx, [eax + 1]
mov edx, ebx
cmp ebx, dword [esp + 0x74]
jne 0x66612d41
movzx edx, byte [edi + eax + 1]
add eax, 2
jmp 0x66612d43
test bx, bx
je 0x6661230f
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
jmp 0x6661295f
mov eax, dword [esp + 0x6c]
test byte [eax + 0x22], 0x80
jne 0x6661109d
mov eax, dword [esp + 0x3c]
movsx ecx, word [esi + 0x20]
mov eax, dword [eax + 0xdc]
mov edx, ecx
mov dword [esp + 0x28], ecx
call fcn.665be290
mov ecx, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x30], eax
je 0x66612f32
movzx edx, word [eax + 8]
xor edi, edi
mov eax, edx
and eax, 0x3f
cmp byte [eax + 0x66689780], 3
je 0x6661335b
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xd4]
cmp ecx, 0x1f
jle 0x66612f27
or eax, 0x80000000
mov dword [edx + 0xd4], eax
test edi, edi
je 0x66612e20
movzx eax, byte [edi]
mov byte [esp + 0x74], al
test al, al
jne 0x66611a8c
cmp dword [esp + 0x30], 0
je 0x6661109d
mov eax, dword [esp + 0x30]
call fcn.6659a740
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov dword [esp + 0x68], ecx
mov ebp, dword [esp + 0x78]
test ecx, ecx
je 0x66612e20
jmp 0x66612ca3
mov byte [esp + 0x57], 0x44
xchg ebx, edi
mov esi, edx
mov dword [esp + 0x30], ebp
jmp 0x66611bde
mov esi, 0x35
jmp 0x66612bc3
mov ecx, eax
mov eax, dword [esp + 0x3c]
call fcn.665b5090
jmp 0x6661228e
mov eax, dword [edx + 0x2c]
cmp byte [eax], 0x74
jne 0x6661109d
mov ecx, dword [eax + 8]
movzx eax, byte [ecx]
test al, al
je 0x6661109d
cmp byte [ecx + 1], 0
jne 0x6661109d
cmp al, byte [esp + 0x94]
je 0x6661109d
cmp al, byte [esp + 0x95]
je 0x6661109d
mov byte [esp + 0x97], al
jmp 0x66611a1e
mov eax, dword [edx + 0x14]
mov ecx, dword [eax]
jmp 0x6661113f
mov dword [esp], 0
mov edx, 0x31
xor ecx, ecx
xor edi, edi
mov eax, dword [esp + 0x88]
call fcn.665bb3d0
mov edx, eax
test eax, eax
jne 0x6661288b
jmp 0x66611f71
mov word [esp + 0x30], 0
jmp 0x666118bc
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
jmp 0x666122d5
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
jmp 0x666122b8
sub ecx, 1
bts eax, ecx
jmp 0x66612e07
xor edi, edi
jmp 0x66612dec
movzx ecx, byte [esp + 0x74]
cmp byte [esp + 0x58], cl
jne 0x66612cb9
jmp 0x66612e20
mov eax, dword [esp + 0x70]
mov byte [edi + ecx], 0
cmp byte [eax], 0xa6
je 0x66613438
mov dword [esp], 1
mov edx, dword [esp + 0x48]
fldz
mov eax, edi
fstp qword [esp + 0x98]
mov dword [esp + 0x58], ecx
call fcn.665882a0
test eax, eax
jle 0x66612fab
jmp 0x66612f85
fstp st(0)
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
call fcn.665978b0
cmp dword [esp + 0x30], 0
je 0x6661109d
mov eax, dword [esp + 0x30]
call fcn.6659a740
jmp 0x6661109d
mov ecx, dword [esp + 0x58]
fldz
cmp ecx, 1
jne 0x66613467
movzx eax, byte [edi]
cmp al, 0x2d
je 0x66612f83
add eax, 1
mov ebx, edi
mov byte [edi], al
fstp qword [esp + 0x98]
mov edx, dword [esp + 0x48]
mov eax, edi
mov dword [esp], 1
call fcn.665882a0
sub byte [ebx], 1
test eax, eax
jg 0x66612f85
cmp dword [esp + 0x7c], 0x9b
je 0x6661327d
cmp dword [esp + 0x30], 0
je 0x66613006
mov eax, dword [esp + 0x30]
call fcn.6659a740
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x30], eax
test edx, edx
je 0x66613276
mov dword [esp], 0
mov eax, dword [esp + 0x50]
xor ecx, ecx
call fcn.665a7430
mov edi, eax
test byte [esp + 0x88], 8
jne 0x6661323e
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x66613097
mov eax, dword [esp + 0x20]
or word [eax + 0xa], 0x400
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 8]
movzx eax, byte [esi]
test al, al
je 0x66613097
xor ecx, ecx
movzx ebx, al
movzx edx, byte [ebx + 0x66690980]
and edx, 0x20
not edx
and eax, edx
movzx edx, byte [ebx + 0x66690a80]
mov byte [esi], al
mov eax, dword [edi + 8]
mov byte [eax + ecx], dl
mov eax, dword [esp + 0x28]
add ecx, 1
mov esi, dword [eax + 8]
add esi, ecx
movzx eax, byte [esi]
test al, al
jne 0x66613064
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x53], 0
jne 0x666130dc
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x6661333d
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
lea edx, [ebx + eax - 1]
movzx eax, byte [edx]
cmp al, 0x40
movzx eax, byte [eax + 0x66690a80]
mov ecx, 0
cmovne ecx, dword [esp + 0x5c]
add eax, 1
mov dword [esp + 0x5c], ecx
mov byte [edx], al
mov ebx, 0x666824a0
mov eax, dword [esp + 0x30]
xor edx, edx
test eax, eax
je 0x66613101
mov dword [esp], 0
mov edx, eax
mov eax, dword [esp + 0x50]
xor ecx, ecx
call fcn.665a7430
mov edx, eax
mov esi, dword [esp + 0x3c]
mov dword [esp], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], 6
mov eax, esi
call fcn.6658c210
mov edx, 0x39
mov ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, esi
call fcn.665bb3d0
mov edx, eax
test eax, eax
je 0x66613153
mov eax, dword [ebp + 4]
and eax, 1
or dword [edx + 4], eax
mov eax, dword [ebp + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x24]
mov ecx, 0x103
call fcn.6659e570
mov edx, dword [esp + 0x24]
mov ecx, eax
mov esi, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x66613192
mov dword [esp], 0
mov edx, eax
mov eax, dword [esp + 0x50]
xor ecx, ecx
call fcn.665a7430
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x98], ebx
mov dword [esp], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x9c], 6
mov eax, ebx
call fcn.6658c210
mov dword [esp], edi
mov edx, 0x38
mov ecx, eax
mov eax, ebx
call fcn.665bb3d0
mov edx, eax
test eax, eax
je 0x666131e4
mov eax, dword [ebp + 4]
and eax, 1
or dword [edx + 4], eax
mov eax, dword [ebp + 0x24]
mov dword [edx + 0x24], eax
mov edi, dword [esp + 0x24]
mov ecx, 0x103
mov eax, edi
call fcn.6659e570
mov edx, edi
mov ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x40]
call fcn.66610da0
mov eax, dword [edi + 0x14]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
add edi, eax
mov dword [esp + 0x20], edi
test edx, edx
je 0x6661109d
mov edi, dword [esp + 0x44]
mov edx, esi
mov ecx, edi
call fcn.6658d5d0
mov eax, dword [esp + 0x24]
mov ecx, edi
mov edx, ebx
mov eax, dword [eax + 0x14]
call fcn.6658d5d0
jmp 0x6661109d
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x53], 0
jne 0x6661326c
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x6661334c
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
lea edx, [ebx + eax - 1]
movzx eax, byte [edx]
add eax, 1
mov byte [edx], al
mov ebx, str.BINARY
jmp 0x666130e1
xor edi, edi
jmp 0x66613030
mov eax, dword [esp + 0x3c]
movsx edx, word [esi + 0x20]
mov ebx, dword [eax + 8]
mov eax, dword [ebx + 0xd4]
cmp edx, 0x1f
jle 0x66613332
or eax, 0x80000000
cmp dword [esp + 0x5c], 0
mov dword [ebx + 0xd4], eax
je 0x66612ff6
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
je 0x66612ff6
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 0x13]
test al, al
je 0x6661331f
mov edi, dword [esp + 0x3c]
sub eax, 1
mov byte [edi + 0x13], al
movzx eax, al
mov edi, dword [edi + eax*4 + 0x94]
mov eax, dword [esp + 0x3c]
mov edx, esi
mov ecx, edi
call fcn.6660ea60
mov edx, dword [ebx]
mov eax, 0x666b004c
cmp byte [edx + 0x53], 0
jne 0x66613300
mov eax, dword [ebx + 0x6c]
sub eax, 1
imul eax, eax, 0x14
add eax, dword [ebx + 0x68]
mov dword [eax + 0xc], 0
test edi, edi
je 0x66612ff6
mov eax, dword [esp + 0x3c]
mov edx, edi
call fcn.66588c00
jmp 0x66612ff6
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x2c]
mov dword [esp + 0x58], edi
add edi, 1
mov dword [eax + 0x2c], edi
jmp 0x666132da
sub edx, 1
bts eax, edx
jmp 0x6661329c
movzx eax, byte [0xffffffff]
or edx, 0xffffffff
jmp 0x666130c0
movzx eax, byte [0xffffffff]
or edx, 0xffffffff
jmp 0x66613267
mov eax, edx
and ax, 0x202
cmp ax, 0x202
je 0x666134b7
and dl, 1
jne 0x66612f32
mov eax, dword [esp + 0x30]
mov edx, 1
mov dword [esp + 0x28], ecx
call fcn.665ac380
mov ecx, dword [esp + 0x28]
mov edi, eax
jmp 0x66612dec
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x58]
mov ebp, dword [esp + 0x8c]
mov dword [eax + 0x198], edi
mov dword [eax + 0x19c], esi
or esi, edi
je 0x66612624
mov edi, dword [esp + 0x74]
mov edx, 0x200
mov word [edi + 0xc], dx
mov edi, dword [esp + 0x24]
mov byte [edi + 9], 1
cmp dword [eax + 0xc], 2
jne 0x6661262e
jmp 0x66612a13
mov eax, dword [esp + 0x28]
mov dword [eax + 0x24], 0
jmp 0x666114fc
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x1c], eax
mov eax, ebx
mov dword [edx + 0x14], 0
call fcn.665978b0
jmp 0x666114b2
mov word [esp + 0x30], 0
mov edx, dword [ebx + 0xc]
jmp 0x666118bc
test eax, eax
je 0x6661109d
mov edx, eax
mov eax, ebx
call fcn.665978b0
movzx eax, byte [ebp]
lea edx, [eax - 0x2d]
and edx, 0xfffffff7
jmp 0x666110a7
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], ecx
call fcn.665833a0
mov ecx, dword [esp + 0x58]
cmp al, 0x42
jne 0x66612f5e
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x2c]
cmp dword [eax + 0x38], 0
jne 0x66612f5e
jmp 0x66612fe8
add byte [ebx], 1
fstp qword [esp + 0x98]
jmp 0x66612fcf
mov edx, dword [edi + 0x10]
jmp 0x66611485
mov ebp, dword [esp + 0x78]
mov edx, ecx
jmp 0x66612c9d
mov dword [esp + 0x98], 0x6667f3f2
mov eax, 0x6667f3f2
jmp 0x6661144a
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x30]
call fcn.665b5090
jmp 0x66611435
mov ecx, dword [edx + 0x10]
jmp 0x666114d9
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xa], 1
jne 0x6661336b
mov edi, dword [eax + 0x10]
jmp 0x66612dec
jmp 0x66679f41
jmp 0x66679f48
mov eax, dword [8]
ud2
movzx eax, byte [pe_dos_header]
ud2
mov eax, dword [0xc]
ud2