Function at 0x44340e
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x488
mov ebx, edx
mov esi, ecx
mov dword [esp + 0x18], edx
push 0x30
push dword [ebp + 0x18]
call dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x4445ce
mov edi, eax
mov dword [esp + 0x50], esi
mov edx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
add eax, 0x20
mov dword [esp + 0x28], eax
movzx ecx, byte [ebx]
test byte [ecx + 0x1003f5f0], 2
jne 0x443498
cmp cl, 0x6d
jg 0x44374a
cmp cl, 0x22
je 0x44386f
cmp cl, 0x66
jne 0x443816
cmp dword [ebx + 1], 0x65736c61
jne 0x444bee
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], 0
mov dword [ecx], 3
add ebx, 5
jmp 0x443be3
mov dword [esp + 0x5c], 0
xor eax, eax
cmp cl, 0x2d
sete al
lea esi, [ebx + eax]
movzx eax, byte [ebx + eax]
test byte [eax + 0x1003f7a8], 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x2c], ecx
je 0x444676
add eax, 0xffffffd0
movzx edx, byte [esi + 1]
mov ebx, esi
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x4446ca
mov ecx, 0xa
imul ecx
mov edi, edx
add eax, esi
adc edi, 0
movzx edx, byte [ebx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x444736
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 3]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x44478c
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x4447b7
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 5]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x4447e2
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x44480d
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 7]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x444838
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x444863
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 9]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x44488e
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x4448b9
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xb]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x4448e4
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x44490f
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xd]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x44493a
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x444965
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xf]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x444990
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x4449b7
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0x11]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x4449de
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0x12]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x444a05
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
mov dword [esp], eax
adc edi, edx
mov al, byte [ebx + 0x13]
add ebx, 0x13
movzx ecx, al
mov dl, byte [ecx + 0x1003f7a8]
test dl, 0x33
je 0x44377e
mov dword [esp + 0xc], eax
test dl, 3
mov esi, edi
je 0x443715
movzx eax, byte [ebx + 1]
test byte [eax + 0x1003f7a8], 0x33
je 0x443c74
test dl, 0x20
jne 0x4437ef
cmp byte [esp + 0xc], 0x2e
jne 0x443d31
lea eax, [ebx + 1]
movzx ecx, byte [ebx + 1]
mov dword [esp + 0xc], ecx
test byte [ecx + 0x1003f7a8], 3
je 0x443e05
mov dword [esp + 0x10], ebx
jmp 0x443d3b
cmp cl, 0x6e
je 0x443bc2
cmp cl, 0x74
jne 0x443816
cmp dword [ebx], 0x65757274
jne 0x444bee
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], 0
mov dword [ecx], 0xb
jmp 0x443be0
cmp byte [esp + 0x2c], 0x2d
mov edx, dword [esp]
mov dword [esp + 4], ebx
jne 0x443c35
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x443c35
mov eax, dword [esp + 0x24]
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0x14
movd xmm0, edx
movd xmm1, edi
mov edi, eax
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x10042f40]
subpd xmm0, xmmword [0x10042f50]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x1003eaf0]
movlpd qword [eax + 0x28], xmm1
jmp 0x443c6b
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
xor esi, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
jmp 0x443e8d
mov dword [esp + 0x24], edi
test dl, 0x10
jne 0x444bb3
mov eax, dword [ebp + 8]
cmp ebx, eax
mov ecx, 5
adc ecx, 0
mov dword [esp + 4], ecx
cmp ebx, eax
mov ecx, 0x1004abf6
mov edx, 0x1004b011
cmovb edx, ecx
mov ecx, ebx
mov edi, dword [esp + 0x50]
sub ecx, edi
mov esi, eax
sub esi, edi
cmp ebx, eax
cmovb esi, ecx
mov ecx, dword [ebp + 0x20]
mov dword [ecx + 8], esi
mov eax, dword [esp + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
push dword [esp + 0x24]
push dword [ebp + 0x18]
jmp 0x446d00
mov esi, edi
mov al, byte [ebx + 1]
add ebx, 1
mov edi, ebx
mov dword [esp + 0x54], ebx
movzx ecx, al
test byte [ecx + 0x1003f5f0], 0xc
jne 0x443a5f
add edi, 8
mov ecx, edi
mov edi, esi
nop word cs:[eax + eax]
movzx eax, byte [ecx - 7]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439a1
movzx eax, byte [ecx - 6]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439a6
movzx eax, byte [ecx - 5]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439ab
movzx eax, byte [ecx - 4]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439b0
movzx eax, byte [ecx - 3]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439b5
movzx eax, byte [ecx - 2]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439ba
movzx eax, byte [ecx - 1]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439bf
movzx eax, byte [ecx]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439e5
movzx eax, byte [ecx + 1]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439c4
movzx eax, byte [ecx + 2]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439c9
movzx eax, byte [ecx + 3]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439ce
movzx eax, byte [ecx + 4]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439d3
movzx eax, byte [ecx + 5]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439d8
movzx eax, byte [ecx + 6]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439dd
movzx eax, byte [ecx + 7]
test byte [eax + 0x1003f5f0], 0xc
jne 0x4439e2
movzx eax, byte [ecx + 8]
add ecx, 0x10
test byte [eax + 0x1003f5f0], 0xc
je 0x44389e
add ecx, 0xfffffff8
jmp 0x4439e5
add ecx, 0xfffffff9
jmp 0x4439e5
add ecx, 0xfffffffa
jmp 0x4439e5
add ecx, 0xfffffffb
jmp 0x4439e5
add ecx, 0xfffffffc
jmp 0x4439e5
add ecx, 0xfffffffd
jmp 0x4439e5
add ecx, 0xfffffffe
jmp 0x4439e5
add ecx, 0xffffffff
jmp 0x4439e5
add ecx, 1
jmp 0x4439e5
add ecx, 2
jmp 0x4439e5
add ecx, 3
jmp 0x4439e5
add ecx, 4
jmp 0x4439e5
add ecx, 5
jmp 0x4439e5
add ecx, 6
jmp 0x4439e5
add ecx, 7
mov dword [esp + 4], ecx
cmp al, 0x22
je 0x443bf6
mov dword [esp + 0x24], edi
test al, al
jns 0x44540f
test dword [ebp + 0x1c], 0x40000000
jne 0x443a6f
mov edi, dword [esp + 4]
mov eax, dword [edi]
mov ebx, eax
and ebx, 0xc0c0f0
mov ecx, eax
mov edx, eax
cmp ebx, 0x8080e0
jne 0x443b01
mov edx, ecx
and edx, 0x200f
je 0x443aff
cmp edx, 0x200d
je 0x443aff
mov ecx, dword [edi + 3]
add edi, 3
mov edx, ecx
and edx, 0xc0c0f0
mov eax, ecx
cmp edx, 0x8080e0
je 0x443a24
mov edx, ecx
mov eax, ecx
jmp 0x443b01
mov dword [esp + 4], edi
mov edi, esi
cmp al, 0x22
je 0x443bf6
jmp 0x4439f1
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0x800080
cmp ecx, 0x800080
jne 0x443ac7
add dword [esp + 4], 2
test eax, 0xff00
je 0x446350
cmp eax, 0xffffff
jbe 0x446359
mov edx, dword [esp + 4]
mov eax, dword [edx + 2]
mov ecx, eax
and ecx, 0x800080
add edx, 4
mov dword [esp + 4], edx
cmp ecx, 0x800080
je 0x443a8a
mov edi, dword [esp + 4]
add edi, 0xfffffffe
jmp 0x443acb
mov edi, dword [esp + 4]
test al, al
mov esi, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
jns 0x44387d
movzx eax, ax
cmp eax, 0xff
jbe 0x44635d
movzx eax, word [edi + 2]
add edi, 2
test al, al
js 0x443ada
mov esi, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
jmp 0x44387d
mov edx, ecx
test dl, dl
mov esi, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
jns 0x44387d
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x443b44
mov edx, ecx
and edx, 0x1e
je 0x443b44
mov ecx, dword [edi + 2]
add edi, 2
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x443b42
mov eax, ecx
and eax, 0x1e
jne 0x443b27
mov eax, ecx
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x443b9f
mov edx, ecx
and edx, 0x3007
je 0x443b9f
test cl, 4
je 0x443b6b
and ecx, 0x3003
jne 0x443b9f
add edi, 4
mov ecx, edi
mov edi, ecx
mov eax, dword [ecx]
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x443b9f
mov ecx, eax
and ecx, 0x3007
je 0x443b9f
lea ecx, [edi + 4]
test al, 4
je 0x443b70
mov edx, eax
and edx, 0x3003
je 0x443b70
cmp dword [esp + 4], edi
mov esi, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
jne 0x44387d
mov edi, dword [esp + 4]
mov dword [esp + 0x18], edi
mov eax, 0x1004ad70
jmp 0x446366
mov eax, dword [ebx]
cmp eax, 0x6c6c756e
jne 0x444be5
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], 0
mov dword [ecx], 2
add ebx, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 4], ebx
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
jmp 0x444589
mov ebx, dword [esp + 4]
mov eax, ebx
mov dword [esp + 4], eax
mov esi, dword [esp + 0x54]
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov dword [edi + 0x24], ecx
shl eax, 8
or eax, 5
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], esi
mov eax, dword [esp + 4]
mov byte [eax], 0
add ebx, 1
mov dword [esp + 4], ebx
mov dword [esp + 0x18], ebx
jmp 0x44457c
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x2c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x24]
mov dword [esi + 0x20], edx
cmovne eax, edi
mov edi, esi
cmovne ecx, dword [esp]
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
mov dword [esp + 0x18], ebx
jmp 0x444579
add ecx, 0xffffffd0
cmp dword [esp], 0x99999999
mov eax, esi
sbb eax, 0x19999999
jb 0x443ca9
mov eax, 0x19999999
mov esi, 0x99999999
xor esi, dword [esp]
xor eax, edi
or eax, esi
mov esi, edi
jne 0x443715
cmp ecx, 5
ja 0x443715
mov edx, 0xa
mov eax, dword [esp]
mul edx
add ebx, 1
mov dword [esp + 4], ebx
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp byte [esp + 0x2c], 0x2d
jne 0x443db3
mov ecx, 0x80000000
mov esi, eax
neg esi
sbb ecx, edx
jae 0x443db3
mov edi, dword [esp + 0x24]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x10042f40]
subpd xmm0, xmmword [0x10042f50]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x1003eaf0]
movlpd qword [edi + 0x28], xmm1
jmp 0x444571
mov dword [esp + 0x10], 0
mov eax, ebx
mov edi, esi
mov dword [esp + 0x1c], eax
lea esi, [eax + 1]
nop word cs:[eax + eax]
movzx eax, byte [esi]
movzx edx, byte [eax + 0x1003f7a8]
add esi, 1
test dl, 3
jne 0x443d4e
xor ebx, ebx
cmp byte [esp + 0xc], 0x34
seta bl
add dword [esp], ebx
adc edi, 0
lea ebx, [esi - 1]
cmp dword [esp + 0x10], 0
je 0x443d81
mov esi, ebx
jmp 0x443e1d
cmp al, 0x2e
jne 0x443e17
movzx eax, byte [esi]
test byte [eax + 0x1003f7a8], 3
je 0x446cb7
nop dword [eax + eax]
movzx eax, byte [esi + 1]
add esi, 1
movzx edx, byte [eax + 0x1003f7a8]
test dl, 3
jne 0x443d9e
jmp 0x443e19
xor ecx, ecx
mov esi, eax
neg esi
sbb ecx, edx
xor ebx, ebx
cmp byte [esp + 0x2c], 0x2d
sete bl
lea edi, [ebx*8 + 4]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x20], edi
mov edi, ebx
mov ebx, dword [ebp + 0x18]
cmovne ecx, edx
cmovne esi, eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], esi
mov esi, dword [ebp + 0x14]
mov dword [edi + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x1c]
jmp 0x444589
mov dword [esp + 0x18], eax
mov dword [esp], 0x1004aaa5
mov esi, eax
jmp 0x446cc2
mov esi, ebx
mov dword [esp + 0x10], ebx
lea eax, [esi - 1]
mov dword [esp + 8], edi
jmp 0x443e31
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x443e2e
cmp cl, 0x2e
je 0x443e2e
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 4], esi
mov ebx, dword [esp + 0x1c]
sub edi, ebx
setb cl
mov esi, ecx
mov ecx, edi
sar ecx, 0x1f
add esi, edi
mov dword [esp + 0xc], esi
adc ecx, 0
xor edi, edi
cmp eax, ebx
mov eax, dword [esp + 4]
cmovb eax, edi
mov dword [esp + 0x14], eax
cmovb ebx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 4]
mov esi, ecx
test dl, 0x20
mov edx, dword [ebp + 0x1c]
je 0x443f71
mov dword [esp + 0x20], esi
movzx edx, byte [ebx + 1]
add ebx, 1
mov al, byte [edx + 0x1003f7a8]
and al, 0xc
cmp al, 1
mov esi, ebx
sbb esi, 0xffffffff
movzx ebx, byte [esi]
test byte [ebx + 0x1003f7a8], 3
je 0x4470e4
cmp bl, 0x30
mov dword [esp + 0x30], edx
jne 0x443ee7
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [esi + 1]
add esi, 1
cmp ebx, 0x30
je 0x443ece
test byte [ebx + 0x1003f7a8], 3
je 0x444274
xor eax, eax
mov dword [esp + 0x38], esi
xor edi, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, ebx
sar ecx, 0x1f
mov edx, 0xa
mul edx
add eax, ebx
lea edi, [edi + edi*4]
lea edi, [edx + edi*2]
adc edi, ecx
movzx ebx, byte [esi + 1]
add esi, 1
add eax, 0xffffffd0
adc edi, 0xffffffff
test byte [ebx + 0x1003f7a8], 3
jne 0x443efe
mov dword [esp + 4], esi
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 4]
sub ecx, esi
cmp ecx, 0x13
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
jge 0x444b02
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, edi
cmp byte [esp + 0x30], 0x2d
cmovne ecx, edi
cmovne edx, eax
add esi, edx
mov dword [esp + 0xc], esi
adc ebx, ecx
mov edx, dword [ebp + 0x1c]
mov esi, ebx
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x24]
mov eax, 0xfffffea8
cmp eax, dword [esp + 0xc]
mov eax, 0xffffffff
sbb eax, esi
jge 0x444a6d
mov ecx, esi
mov eax, dword [esp + 0xc]
cmp eax, 0x135
sbb ecx, 0
jge 0x444aa9
mov esi, eax
mov ecx, 0x200000
mov eax, esi
mov dword [esp + 0x5c], esi
lea eax, [esi + 0x16]
cmp eax, 0x2c
mov dword [esp + 4], ebx
ja 0x443ff9
cmp dword [esp + 8], ecx
jae 0x443ff9
movss xmm1, dword [esp]
movss xmm0, dword [esp + 8]
unpcklps xmm1, xmm0
unpcklps xmm1, xmmword [0x10042f40]
subpd xmm1, xmmword [0x10042f50]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test esi, esi
js 0x444229
mulsd xmm0, qword [esi*8 + 0x1003f6f0]
jmp 0x444237
mov ebx, esi
lea eax, [esi + 0x132]
cmp eax, 0x251
ja 0x444b3b
cmp dword [esp + 0x1c], 0
jne 0x444b3b
imul eax, ebx, 0x3526a
shl ebx, 4
add eax, 0xffc10000
mov dword [esp + 0x20], eax
mov esi, dword [esp + 8]
bsr eax, esi
xor eax, 0x1f
mov edx, dword [esp]
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
test esi, esi
cmovne ecx, eax
xor eax, eax
shld esi, edx, cl
mov edi, ebx
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x30], ecx
test cl, 0x20
cmovne esi, ebx
mov dword [esp + 0x40], 0
cmovne ebx, eax
mov ecx, dword [edi + 0x10040e18]
mov eax, ecx
mul ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0xc], edi
mov eax, dword [edi + 0x10040e1c]
mov dword [esp + 0x38], eax
mul ebx
mov dword [esp + 0x44], edx
mov edi, eax
mov dword [esp + 0x58], ecx
mov eax, ecx
mul esi
mov ecx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
mul esi
add edi, dword [esp + 0x48]
adc eax, dword [esp + 0x44]
adc edx, 0
add edi, dword [esp + 0x34]
mov dword [esp + 0x48], edi
adc eax, ecx
adc edx, 0
mov esi, eax
and esi, 0x1ff
add esi, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp esi, 0x1fe
sbb ecx, 0
jb 0x44418a
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x10040e20]
mov eax, edi
mul ebx
mov dword [esp + 0x34], edx
mov esi, dword [ecx + 0x10040e24]
mov eax, esi
mov dword [esp + 0x60], ebx
mul ebx
mov ecx, edx
mov dword [esp + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x3c]
mul edi
mov ebx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], esi
mov eax, esi
mul edi
mov esi, dword [esp + 0x6c]
add esi, dword [esp + 0x34]
adc ecx, 0
add esi, dword [esp + 0xc]
adc ebx, 0
add ecx, eax
adc edx, 0
add ecx, ebx
adc edx, 0
mov edi, ecx
add edi, dword [esp + 0x4c]
mov dword [esp + 0xc], edx
adc edx, dword [esp + 0x48]
mov ebx, edi
add ebx, 1
mov eax, edx
adc eax, 0
cmp ebx, 2
sbb eax, 0
jb 0x444281
cmp edi, dword [esp + 0x4c]
mov eax, edx
sbb eax, dword [esp + 0x48]
setb al
cmp edi, ecx
sbb edx, dword [esp + 0xc]
setb cl
or cl, al
movzx ecx, cl
mov eax, dword [esp + 0x64]
add eax, ecx
mov edx, dword [esp + 0x68]
adc edx, 0
mov ebx, dword [esp + 0x20]
shr ebx, 0x10
mov ecx, edx
not ecx
shr ecx, 0x1f
shld edx, eax, cl
shl eax, cl
mov edi, eax
and edi, 0x400
add edi, eax
adc edx, 0
sub ebx, dword [esp + 0x30]
sub ebx, ecx
cmp edi, 0x400
mov ecx, edx
sbb ecx, 0
setb cl
adc ebx, 0
mov esi, edx
shr edx, 0xb
and edx, 0xfffff
xor eax, eax
test cl, cl
cmovne edx, eax
shld esi, edi, 0x15
test cl, cl
cmovne esi, eax
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
shl eax, 0x1f
or eax, edx
shl ebx, 0x14
add ebx, 0x47e00000
or eax, ebx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov edi, ecx
mov edx, dword [ebp + 0x1c]
jmp 0x444585
shl esi, 3
mov eax, 0x1003f6f0
sub eax, esi
divsd xmm0, qword [eax]
mov ebx, dword [ebp + 0x18]
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
cmp al, 0x2d
mov eax, dword [ebp + 8]
jne 0x44425b
xorpd xmm0, xmmword [0x1003eaf0]
mov ecx, dword [esp + 0x28]
movsd qword [edi + 0x28], xmm0
mov esi, dword [esp + 4]
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 0x14]
jmp 0x444589
xor eax, eax
xor edi, edi
mov dword [esp + 4], esi
jmp 0x443f32
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x20]
xor ebx, ebx
cmp dword [esp + 0x1c], 0
setne bl
shl ebx, 2
xor edi, edi
mov ecx, dword [esp + 0x30]
shld edi, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne edi, ebx
mov dword [esp + 0xc], edi
cmovne ebx, edx
sar eax, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
shr eax, 0x1f
add eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x38]
adc ecx, 0
mov dword [esp + 0x44], eax
mov esi, eax
imul esi, dword [esp + 0x40]
mov edi, dword [esp + 0x60]
mul edi
add edx, esi
mov dword [esp + 0x34], edx
mov eax, ecx
mul edi
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x40]
imul eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
mul dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, ecx
mul dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
imul eax, ecx
add edi, dword [esp + 0x34]
adc esi, dword [esp + 0x40]
add edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
adc ecx, dword [esp + 0x38]
add esi, dword [esp + 0x3c]
adc edx, eax
add esi, ecx
adc edx, 0
shr edi, 0x1f
add edi, esi
adc edx, 0
xor eax, eax
mov ecx, ebx
mov esi, dword [esp + 0xc]
or ecx, esi
sete al
sub ebx, eax
sbb esi, 0
add ebx, 9
adc esi, 0
bsr eax, edx
xor eax, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
shl edi, cl
shld esi, ebx, cl
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x30]
shl ebx, cl
sub eax, ecx
mov dword [esp + 0x20], eax
test cl, 0x20
cmovne edx, edi
mov eax, 0
cmovne edi, eax
cmovne esi, ebx
mov dword [esp + 0xc], esi
cmovne ebx, eax
mov dword [esp + 0x30], ebx
mov eax, 0xfffffb8e
mov ecx, dword [esp + 0x20]
sub eax, ecx
lea ebx, [ecx + 0x40]
cmp ebx, 0xfffffb8f
mov ecx, 0x40
cmovge ecx, eax
mov eax, 0xb
cmp ebx, 0xfffffbc2
jle 0x444d32
cmp eax, 0x3d
jge 0x444d3d
mov dword [esp + 0x3c], ebx
mov ebx, edi
mov dword [esp + 0x48], eax
mov edi, edx
mov dword [esp + 0x38], edx
mov ecx, eax
shr edx, cl
xor ecx, ecx
test al, 0x20
mov esi, edx
cmovne esi, ecx
mov dword [esp + 0x20], ebx
mov ecx, eax
shrd ebx, edi, cl
test al, 0x20
cmovne ebx, edx
mov dword [esp + 0x40], ebx
mov edx, 0xffffffff
shl edx, cl
test al, 0x20
mov ecx, 0xffffffff
mov ebx, edx
cmove edx, ecx
mov edi, 0
cmovne ebx, edi
not ebx
and ebx, dword [esp + 0x20]
not edx
and edx, dword [esp + 0x38]
shld edx, ebx, 3
shl ebx, 3
mov ecx, eax
add cl, 0xff
mov eax, 8
xor edi, edi
shld edi, eax, cl
shl eax, cl
test cl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x20], eax
add eax, dword [esp + 0x30]
mov dword [esp + 0x34], edi
adc edi, dword [esp + 0xc]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], eax
cmp ebx, eax
mov dword [esp + 0x44], edx
mov ecx, edx
mov dword [esp + 0x58], edi
sbb ecx, edi
setae cl
movzx edi, cl
add edi, dword [esp + 0x40]
adc esi, 0
mov ecx, edi
or ecx, esi
je 0x444fa1
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x3c]
bsr ebx, esi
xor ebx, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test esi, esi
cmovne ecx, ebx
shld esi, edi, cl
shl edi, cl
xor edx, edx
test cl, 0x20
cmovne esi, edi
cmove edx, edi
sub eax, ecx
cmp eax, 0x3c0
mov ebx, edx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
jg 0x444c8a
shrd ebx, esi, 0xb
shr esi, 0xb
cmp eax, 0xfffffbc2
jle 0x444f7c
shl eax, 0x14
and esi, 0xfffff
add esi, eax
add esi, 0x43e00000
mov eax, esi
xor eax, 0x7ff00000
or eax, ebx
je 0x444c8a
mov dword [esp + 0x38], ebx
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
sbb ecx, dword [esp + 0xc]
cmp edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov eax, ebx
sbb eax, dword [esp + 0x58]
jae 0x444548
cmp dword [esp + 0x20], edi
sbb ecx, ebx
jb 0x444d8e
xor eax, eax
cmp dl, 0x2d
sete al
shl eax, 0x1f
or esi, eax
mov edi, dword [esp + 0x24]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, dword [esp + 0x38]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ecx, dword [esp + 0x28]
test dl, 2
jne 0x444594
cmp dword [esp + 4], eax
jb 0x4445f7
mov dword [edi], ecx
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 8], eax
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
sub eax, ecx
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], 1
and edx, 1
jne 0x4445f3
mov dword [edi + 0x1c], ecx
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
cmp ebx, eax
jae 0x44465a
sub ebx, esi
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ebx
mov dword [eax], 2
mov dword [eax + 4], 0x1004afcd
jmp 0x446d06
xor ecx, ecx
jmp 0x4445c1
test dl, 8
jne 0x44639d
mov esi, dword [esp + 4]
movzx eax, byte [esi]
test byte [eax + 0x1003f5f0], 1
je 0x44462c
add esi, 1
mov dword [esp + 0x18], esi
movzx eax, byte [esi]
add esi, 1
test byte [eax + 0x1003f5f0], 1
jne 0x444613
add esi, 0xffffffff
mov ebx, dword [ebp + 0x18]
mov eax, esi
cmp esi, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
jae 0x444594
sub eax, dword [esp + 0x50]
mov ecx, dword [ebp + 0x20]
mov dword [ecx + 8], eax
mov dword [ecx], 4
mov dword [ecx + 4], 0x1004aac2
push edi
push ebx
call esi
jmp 0x446d03
sub eax, esi
mov ecx, eax
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ecx
mov dword [eax], 5
mov dword [eax + 4], 0x1004b011
jmp 0x446d06
cmp al, 0x30
jne 0x446416
movzx eax, byte [esi + 1]
add esi, 1
mov cl, byte [eax + 0x1003f7a8]
test cl, 0x33
jne 0x446437
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
lea eax, [eax*8 + 4]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [esp + 4], esi
mov dword [esp + 0x18], esi
jmp 0x444a9a
lea ecx, [ebx + 1]
mov dword [esp + 0x10], ecx
test byte [edx + 0x1003f7a8], 0x30
jne 0x446476
mov edi, eax
sar edi, 0x1f
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, edi
xor ebx, ebx
cmp byte [esp + 0x2c], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x20], esi
cmovne ecx, edi
cmovne edx, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edi, ebx
mov ebx, eax
mov eax, ecx
jmp 0x444221
mov dword [esp + 8], edi
lea ecx, [ebx + 2]
mov dword [esp + 0x10], ecx
test byte [edx + 0x1003f7a8], 0x30
jne 0x4464c1
xor edi, edi
mov ecx, eax
neg ecx
mov esi, dword [esp + 8]
sbb edi, esi
xor edx, edx
cmp byte [esp + 0x2c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x20], edx
cmovne edi, esi
cmovne ecx, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], edi
mov edi, ebx
jmp 0x444a5c
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 3]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446501
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 4]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446533
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 5]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446565
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 6]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446597
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 7]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4465c9
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 8]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4465fb
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 9]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x44662d
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xa]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x44665f
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xb]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446691
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xc]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4466c3
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xd]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4466f5
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xe]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446727
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0xf]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x446759
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0x10]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
je 0x444a20
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x44678b
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0x11]
mov dword [esp + 0x10], eax
test byte [ecx + 0x1003f7a8], 0x30
je 0x444a20
cmp cl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4467bd
mov dword [esp], eax
mov dword [esp + 8], edi
lea eax, [ebx + 0x12]
mov dword [esp + 0x10], eax
test byte [edx + 0x1003f7a8], 0x30
jne 0x4468ac
xor eax, eax
mov edi, dword [esp]
mov ecx, edi
neg ecx
mov esi, dword [esp + 8]
sbb eax, esi
xor edx, edx
cmp byte [esp + 0x2c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 0x20], edx
cmovne eax, esi
cmovne ecx, edi
mov edi, ebx
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 4], eax
jmp 0x444579
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
shl eax, 0x1f
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov dword [esp + 4], ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
jmp 0x44426c
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov dword [esp], 0x1004ae7c
test dl, 0x10
mov esi, dword [esp + 0x54]
je 0x446cc2
cmp cl, 0x2d
mov esi, dword [esp + 0x24]
mov dword [esi + 0x24], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [esi + 0x20], 0x14
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], 0
mov dword [esp + 4], ebx
mov dword [esp + 0x18], ebx
mov ecx, edi
mov edi, esi
jmp 0x444ff8
cmp byte [esp + 0x30], 0x2d
jne 0x444c2d
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
shl eax, 0x1f
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], 0
jmp 0x44420e
mov esi, dword [esp + 8]
bsr eax, esi
xor eax, 0x1f
mov edx, dword [esp]
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
test esi, esi
cmovne ecx, eax
xor eax, eax
shld esi, edx, cl
shl edx, cl
mov dword [esp + 0x30], ecx
test cl, 0x20
cmovne esi, edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0
cmovne edx, eax
mov dword [esp + 0x60], edx
imul eax, ebx, 0x3526a
shl ebx, 4
add eax, 0xffc10000
mov ecx, dword [ebx + 0x10040e1c]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 0x10040e18]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebx + 0x10040e24]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0
jmp 0x44428d
mov esi, ebx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
cmp cl, 0x49
je 0x444cac
cmp cl, 0x69
je 0x444cac
cmp cl, 0x4e
mov edx, dword [ebp + 0x1c]
mov ebx, esi
jne 0x443823
mov al, byte [ebx + 1]
jmp 0x444fc4
test dl, 0x10
jne 0x4468bc
mov eax, ebx
mov edx, dword [esp + 0x50]
sub eax, edx
mov esi, dword [ebp + 8]
mov ecx, esi
sub ecx, edx
cmp ebx, esi
cmovb ecx, eax
mov eax, 0xb
mov edx, 5
cmovb edx, eax
mov eax, 0x1004ac57
mov esi, 0x1004b011
cmovb esi, eax
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ecx
mov dword [eax], edx
mov dword [eax + 4], esi
push edi
jmp 0x443867
mov dword [esp], 0x1004ae7c
mov edx, dword [ebp + 0x1c]
test dl, 0x10
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x54]
je 0x446cc2
cmp byte [esp + 0x2c], 0x2d
mov edi, dword [esp + 0x24]
mov dword [edi + 0x24], 0
mov eax, 0xfff00000
mov esi, 0x7ff00000
cmove esi, eax
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], esi
mov dword [edi + 0x28], 0
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov esi, ecx
jmp 0x444585
mov esi, dword [esp + 0x28]
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x4468fc
mov dword [esp], 0x1004ae7c
mov ebx, dword [ebp + 0x18]
mov esi, dword [esp + 0x54]
jmp 0x446cc5
mov edx, ecx
mov al, byte [esi + 1]
mov ecx, eax
or cl, 0x20
cmp cl, 0x6e
jne 0x444fb6
mov cl, byte [esi + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x444fb6
mov eax, esi
lea ecx, [esi + 3]
mov al, byte [esi + 3]
or al, 0x20
cmp al, 0x69
jne 0x444d05
mov al, byte [esi + 4]
or al, 0x20
cmp al, 0x6e
jne 0x444d05
mov al, byte [esi + 5]
or al, 0x20
cmp al, 0x69
jne 0x444d05
mov al, byte [esi + 6]
or al, 0x20
cmp al, 0x74
jne 0x444d05
mov al, byte [esi + 7]
or al, 0x20
cmp al, 0x79
jne 0x444d05
add esi, 8
mov ecx, esi
mov dword [esp + 4], ecx
mov dword [esp + 0x18], ecx
movapd xmm0, xmmword [0x10042f70]
movupd xmmword [edi], xmm0
mov ecx, dword [ebp + 0x18]
mov edx, edi
mov edi, ebx
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ebx, ecx
mov ecx, edx
mov edx, dword [ebp + 0x1c]
jmp 0x444589
mov eax, ecx
cmp eax, 0x3d
jl 0x4443e6
lea ecx, [eax - 0x3c]
shrd edi, edx, cl
mov dword [esp + 0x20], edi
shr edx, cl
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xc]
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
lea ebx, [eax + ebx - 0x3c]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x20]
cmovne ebx, edx
mov eax, 0
cmovne edx, eax
cmovne esi, edi
cmovne edi, eax
add esi, 9
mov dword [esp + 0x30], esi
adc edi, 0
mov dword [esp + 0xc], edi
mov eax, 0x3c
jmp 0x4443ec
mov eax, esi
and eax, 0x7ff00000
mov dword [esp + 0x4c], esi
mov ecx, esi
mov esi, dword [esp + 0x38]
shld ecx, esi, 1
mov edi, 0x200000
lea edx, [edi - 1]
and edx, ecx
mov ecx, eax
shr ecx, 0x14
add ecx, 0xfffffbcc
or edi, edx
test eax, eax
mov eax, 0xfffffbcd
cmovne eax, ecx
mov dword [esp + 0x34], eax
cmove edi, edx
lea esi, [esi + esi + 1]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x70]
mov edx, dword [esp]
push dword [esp + 0x10]
push dword [esp + 0x18]
push dword [esp + 0x24]
push eax
push dword [esp + 0x18]
call fcn.0044a41e
add esp, 0x14
mov dword [esp + 0x278], 1
mov dword [esp + 0x280], esi
mov dword [esp + 0x284], edi
mov ecx, dword [esp + 0x5c]
mov eax, ecx
test ecx, ecx
js 0x445039
cmp eax, 0x13
jl 0x445003
mov edx, eax
jmp 0x444e35
lea eax, [edx - 0x13]
cmp edx, 0x25
mov edx, eax
jle 0x445003
mov ecx, dword [esp + 0x70]
xor esi, esi
test ecx, ecx
je 0x444e52
mov eax, dword [esp + esi*8 + 0x78]
or eax, dword [esp + esi*8 + 0x7c]
jne 0x444e52
add esi, 1
cmp ecx, esi
jne 0x444e3f
jmp 0x444e27
cmp esi, ecx
jae 0x444e27
mov dword [esp + 0x44], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x48], ecx
mov edi, dword [esp + esi*8 + 0x78]
mov eax, edi
mov ecx, 0x89e80000
mul ecx
mov dword [esp], eax
mov dword [esp + 0x30], edx
xor ecx, ecx
mov ebx, 0x89e80000
add ebx, 0xdf2304
setb cl
mov dword [esp + 8], edi
mov eax, edi
mul ebx
mov edi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + esi*8 + 0x7c]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
imul eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mul ebx
mov dword [esp + 0x3c], eax
imul ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0xc]
adc ebx, dword [esp + 8]
add edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
adc eax, 0
add ebx, dword [esp + 0x3c]
adc edx, ecx
add ebx, eax
mov dword [esp + 0xc], ebx
adc edx, 0
mov eax, dword [esp]
and eax, 0xfff80000
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esp], eax
mov ebx, dword [esp + 0x20]
adc edi, ebx
setb byte [esp + 8]
cmp eax, ecx
mov ecx, edi
sbb ecx, ebx
mov dword [esp + esi*8 + 0x7c], edi
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + esi*8 + 0x78], eax
adc edx, 0
mov dword [esp + 0x20], edx
add esi, 1
cmp dword [esp + 0x48], esi
jne 0x444e6e
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
je 0x444e27
mov eax, dword [esp + 0x70]
lea ecx, [eax + 1]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + eax*8 + 0x7c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + eax*8 + 0x78], ecx
jmp 0x444e27
cmp eax, 0xfffffb8f
jl 0x444fa1
mov edx, eax
mov cl, 0xc3
sub cl, dl
mov edx, ebx
shrd edx, esi, cl
shr esi, cl
xor eax, eax
test cl, 0x20
cmovne edx, esi
cmove eax, esi
mov ebx, edx
mov esi, eax
jmp 0x444fa5
xor ebx, ebx
xor esi, esi
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
jmp 0x444518
cmp dl, 0x4e
mov edx, dword [ebp + 0x1c]
mov ebx, esi
jne 0x443823
or al, 0x20
cmp al, 0x61
jne 0x443823
mov al, byte [ebx + 2]
or al, 0x20
cmp al, 0x6e
jne 0x443823
add ebx, 3
mov dword [esp + 0x18], ebx
movapd xmm0, xmmword [0x10042f60]
mov ecx, edi
movupd xmmword [edi], xmm0
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
jmp 0x44426c
test eax, eax
je 0x445a7f
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x44523b
xor ecx, ecx
mov edx, dword [esp + ecx*8 + 0x78]
or edx, dword [esp + ecx*8 + 0x7c]
jne 0x44523d
add ecx, 1
cmp dword [esp + 0x1c], ecx
jne 0x44501d
jmp 0x445a7f
mov ecx, eax
neg ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 8], 1
cmp eax, 0xffffffed
jg 0x4451dc
mov ecx, 1
test ecx, ecx
je 0x4451d3
xor esi, esi
mov eax, dword [esp + esi*8 + 0x280]
or eax, dword [esp + esi*8 + 0x284]
jne 0x44507d
add esi, 1
cmp ecx, esi
jne 0x445061
jmp 0x4451b4
mov eax, ecx
cmp esi, eax
jae 0x4451b4
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x48], eax
mov edi, dword [esp + esi*8 + 0x280]
mov eax, edi
mov ecx, 0x89e80000
mul ecx
mov dword [esp], eax
mov dword [esp + 0x30], edx
xor ecx, ecx
mov ebx, 0x89e80000
add ebx, 0xdf2304
setb cl
mov dword [esp + 8], edi
mov eax, edi
mul ebx
mov edi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + esi*8 + 0x284]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
imul eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mul ebx
mov dword [esp + 0x3c], eax
imul ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0xc]
adc ebx, dword [esp + 8]
add edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
adc eax, 0
add ebx, dword [esp + 0x3c]
adc edx, ecx
add ebx, eax
mov dword [esp + 0xc], ebx
adc edx, 0
mov eax, dword [esp]
and eax, 0xfff80000
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esp], eax
mov ebx, dword [esp + 0x20]
adc edi, ebx
setb byte [esp + 8]
cmp eax, ecx
mov ecx, edi
sbb ecx, ebx
mov dword [esp + esi*8 + 0x284], edi
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + esi*8 + 0x280], eax
adc edx, 0
mov dword [esp + 0x20], edx
add esi, 1
cmp dword [esp + 0x48], esi
jne 0x44509b
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x20]
je 0x4451b4
mov eax, dword [esp + 0x278]
lea ecx, [eax + 1]
mov dword [esp + 0x278], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + eax*8 + 0x284], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + eax*8 + 0x280], ecx
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x26
jl 0x4451e2
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x44], eax
test ecx, ecx
jne 0x44505f
mov eax, ecx
xor esi, esi
jmp 0x44507f
mov eax, dword [esp + 0x44]
jmp 0x4451fd
test eax, eax
je 0x445a7f
mov ecx, dword [esp + 0x278]
mov dword [esp + 8], ecx
test ecx, ecx
je 0x445a7f
mov ecx, dword [eax*8 + 0x1004226c]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax*8 + 0x10042268]
mov dword [esp + 0x1c], eax
xor esi, esi
mov ecx, dword [esp + esi*8 + 0x280]
mov edi, dword [esp + esi*8 + 0x284]
mov eax, ecx
or eax, edi
jne 0x44533a
add esi, 1
cmp dword [esp + 8], esi
jne 0x445215
jmp 0x445a7f
xor ecx, ecx
cmp ecx, dword [esp + 0x1c]
jae 0x445a7f
mov edx, dword [eax*8 + 0x1004226c]
mov dword [esp + 0x3c], edx
mov eax, dword [eax*8 + 0x10042268]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
xor esi, esi
mov edi, dword [esp + ecx*8 + 0x78]
mov eax, edi
mul dword [esp + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov eax, edi
mov ebx, dword [esp + 0x3c]
mul ebx
mov edi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + ecx*8 + 0x7c]
mov dword [esp + 0x40], eax
mul dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mul ebx
mov dword [esp + 0x40], eax
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
adc ebx, 0
add edi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
adc eax, 0
add ebx, dword [esp + 0x40]
adc edx, 0
add ebx, eax
mov dword [esp + 0xc], ebx
adc edx, 0
mov ebx, dword [esp + 8]
mov eax, dword [esp]
add eax, ebx
mov dword [esp], eax
adc edi, esi
setb byte [esp + 0x20]
cmp eax, ebx
mov ebx, edi
sbb ebx, esi
mov dword [esp + ecx*8 + 0x7c], edi
setb ah
or ah, byte [esp + 0x20]
movzx eax, ah
add eax, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp]
mov dword [esp + ecx*8 + 0x78], eax
mov esi, edx
adc esi, 0
add ecx, 1
cmp dword [esp + 0x1c], ecx
jne 0x445267
mov eax, dword [esp + 8]
or eax, esi
je 0x445a7f
mov eax, dword [esp + 0x70]
lea ecx, [eax + 1]
mov dword [esp + 0x70], ecx
mov dword [esp + eax*8 + 0x7c], esi
mov ecx, dword [esp + 8]
mov dword [esp + eax*8 + 0x78], ecx
jmp 0x445a7f
cmp esi, dword [esp + 8]
jae 0x445a7f
add esi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov eax, ecx
mul dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov dword [esp], eax
mov eax, ecx
mov ebx, dword [esp + 0x3c]
mul ebx
mov dword [esp + 0xc], edx
mov ecx, eax
mov eax, edi
mul dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
mov eax, edi
mul ebx
add ecx, dword [esp + 0x30]
mov edi, dword [esp + 0xc]
adc edi, 0
add ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
adc ebx, 0
add edi, eax
adc edx, 0
add edi, ebx
mov dword [esp + 0xc], edi
adc edx, 0
mov edi, dword [esp + 0x10]
mov eax, dword [esp]
add eax, edi
mov dword [esp], eax
mov ebx, dword [esp + 0x20]
adc ecx, ebx
setb byte [esp + 0x30]
cmp eax, edi
mov edi, ecx
sbb edi, ebx
mov dword [esp + esi*8 + 0x27c], ecx
setb cl
or cl, byte [esp + 0x30]
movzx eax, cl
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + esi*8 + 0x278], eax
adc edx, 0
mov dword [esp + 0x20], edx
cmp dword [esp + 8], esi
je 0x445a4e
mov ecx, dword [esp + esi*8 + 0x280]
mov edi, dword [esp + esi*8 + 0x284]
add esi, 1
jmp 0x445357
mov esi, dword [esp + 4]
cmp al, 0x5c
jne 0x446c5e
mov eax, dword [esp + 4]
mov al, byte [eax + 1]
add al, 0xde
cmp al, 0x53
ja 0x446961
movzx eax, al
jmp dword [eax*4 + 0x10043da8]
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x20]
je 0x445a7f
mov eax, dword [esp + 0x278]
lea ecx, [eax + 1]
mov dword [esp + 0x278], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + eax*8 + 0x284], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + eax*8 + 0x280], ecx
cmp dword [esp + 0x34], 0
jle 0x445b45
mov eax, dword [esp + 0x34]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x278]
and eax, 0x3f
mov dword [esp + 0x34], eax
je 0x446976
mov dword [esp + esi*8 + 0x284], 0
mov dword [esp + esi*8 + 0x280], 0
test esi, esi
je 0x445ee0
mov ecx, 0x40
sub ecx, dword [esp + 0x34]
mov eax, dword [esp + esi*8 + 0x278]
mov edx, dword [esp + esi*8 + 0x27c]
mov edi, edx
shr edi, cl
shrd eax, edx, cl
xor edx, edx
mov dword [esp + 8], ecx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov ecx, dword [esp + 0x14]
add ecx, esi
mov dword [esp + ecx*8 + 0x280], eax
mov dword [esp + ecx*8 + 0x284], edx
cmp esi, 1
je 0x445ee0
lea eax, [esi - 1]
mov dword [esp + 0xc], eax
lea edi, [esp + esi*8]
add edi, 0x278
cmp esi, 2
jne 0x445bea
mov eax, dword [esp + 0xc]
mov dword [esp], eax
test byte [esp], 1
jne 0x445d33
mov edx, dword [esp]
jmp 0x445da8
mov eax, dword [esp + 0x34]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x70]
and eax, 0x3f
mov dword [esp + 0x34], eax
je 0x4469bf
mov dword [esp + edi*8 + 0x7c], 0
mov dword [esp + edi*8 + 0x78], 0
test edi, edi
je 0x44620f
mov ecx, 0x40
sub ecx, dword [esp + 0x34]
mov eax, dword [esp + edi*8 + 0x70]
mov edx, dword [esp + edi*8 + 0x74]
mov esi, edx
shr esi, cl
shrd eax, edx, cl
xor edx, edx
mov dword [esp + 8], ecx
test cl, 0x20
cmovne eax, esi
cmove edx, esi
mov ecx, dword [esp + 0x14]
add ecx, edi
mov dword [esp + ecx*8 + 0x78], eax
mov dword [esp + ecx*8 + 0x7c], edx
cmp edi, 1
je 0x44620f
lea eax, [edi - 1]
mov dword [esp + 0xc], eax
lea esi, [esp + edi*8]
add esi, 0x70
cmp edi, 2
jne 0x445f59
mov eax, dword [esp + 0xc]
mov dword [esp], eax
test byte [esp], 1
jne 0x44608a
mov edx, dword [esp]
jmp 0x4460ef
lea eax, [esi - 2]
mov edx, 8
mul edx
lea edx, [esp + ecx*8 + 0x278]
mov dword [esp], edx
seto dl
mov ebx, eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp]
ja 0x445b2c
test dl, dl
jne 0x445b2c
lea eax, [esp + esi*8]
add eax, 0x278
cmp dword [esp + 0x1c], eax
ja 0x445b2c
test dl, dl
jne 0x445b2c
lea ebx, [esp + esi*8]
add ebx, 0x270
cmp dword [esp + 0x1c], ebx
ja 0x445b2c
test dl, dl
jne 0x445b2c
mov edx, dword [esp + 0x14]
lea edx, [esp + edx*8]
add edx, 0x288
lea ebx, [esp + ecx*8]
add ebx, 0x280
lea esi, [esp + esi*8]
add esi, 0x280
cmp edx, esi
lea esi, [esp + 0x288]
setb byte [esp]
cmp ebx, esi
seta byte [esp + 0x10]
cmp edx, eax
setb dl
lea esi, [esp + 0x280]
cmp ebx, esi
seta dh
mov al, byte [esp + 0x10]
test byte [esp], al
jne 0x445b2c
and dl, dh
jne 0x445b2c
shl ecx, 3
mov eax, dword [esp + 0xc]
mov edx, eax
and edx, 0xfffffffe
mov ebx, edx
neg ebx
mov dword [esp + 0x10], edx
lea edx, [edx*8]
sub edi, edx
lea edx, [esp + 0x278]
add ecx, edx
add ecx, 0xfffffff8
and eax, 1
mov dword [esp], eax
movd xmm0, dword [esp + 0x34]
movd xmm1, dword [esp + 8]
mov eax, dword [esp + 0x1c]
add eax, esp
add eax, 0x278
xor esi, esi
movdqu xmm2, xmmword [eax + esi*8]
movdqu xmm3, xmmword [eax + esi*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
psrlq xmm2, xmm1
por xmm2, xmm3
pshufd xmm2, xmm2, 0x4e
movdqu xmmword [ecx + esi*8], xmm2
add esi, 0xfffffffe
cmp ebx, esi
jne 0x445cee
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xc], eax
jne 0x445b33
jmp 0x445ee0
mov esi, dword [edi]
mov edx, dword [edi + 4]
mov eax, esi
mov ecx, dword [esp + 0x34]
shl eax, cl
shld edx, esi, cl
xor esi, esi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x1c], edx
cmovne eax, esi
mov edi, dword [esp]
mov ebx, dword [esp + edi*8 + 0x27c]
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 8]
shr ebx, cl
mov esi, dword [esp + edi*8 + 0x278]
mov edx, dword [esp + 0xc]
shrd esi, edx, cl
test cl, 0x20
cmovne esi, ebx
mov ecx, 0
cmovne ebx, ecx
or ebx, dword [esp + 0x1c]
or esi, eax
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + eax*8 + 0x280], esi
mov dword [esp + eax*8 + 0x284], ebx
lea edx, [edi - 1]
lea edi, [esp + edi*8]
add edi, 0x278
cmp dword [esp], 1
je 0x445ee0
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x280
mov dword [esp + 0xc], ecx
mov dword [esp], edi
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov edi, eax
mov eax, dword [esp + 0x34]
mov ecx, eax
shl edi, cl
mov dword [esp + 0x1c], edi
test al, 0x20
mov ecx, 0
cmovne edi, ecx
mov dword [esp + 0x30], edi
mov ebx, dword [esp + edx*8 + 0x27c]
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 8]
shr ebx, cl
mov esi, dword [esp + edx*8 + 0x278]
mov edi, dword [esp + 0x20]
shrd esi, edi, cl
test cl, 0x20
cmovne esi, ebx
mov ecx, 0
cmovne ebx, ecx
or esi, dword [esp + 0x30]
mov ecx, dword [esp]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
mov dword [ecx + edx*8], esi
mov esi, dword [esp + edx*8 + 0x278]
mov dword [esp + 0x30], esi
mov ecx, eax
shl esi, cl
mov dword [esp + 0x20], esi
test al, 0x20
mov dword [esp], esi
mov ecx, 0
mov esi, dword [esp]
cmovne esi, ecx
mov dword [esp], esi
mov ecx, eax
mov esi, dword [esp + 0x10]
shld edi, esi, cl
test al, 0x20
cmovne edi, dword [esp + 0x1c]
or edi, ebx
mov ebx, dword [esp + edx*8 + 0x270]
mov ecx, dword [esp + 0xc]
mov dword [ecx + edx*8 + 4], edi
mov esi, dword [esp + edx*8 + 0x27c]
mov ecx, eax
mov edi, dword [esp + 0x30]
shld esi, edi, cl
test al, 0x20
cmovne esi, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + edx*8 + 0x274]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 8]
mov ecx, eax
shr esi, cl
mov dword [esp + 0x20], esi
test al, 0x20
mov ecx, 0
cmovne esi, ecx
mov ecx, eax
mov edi, dword [esp + 0x10]
shrd ebx, edi, cl
test al, 0x20
cmovne ebx, dword [esp + 0x20]
or esi, dword [esp + 0x1c]
or ebx, dword [esp]
mov eax, dword [esp + 0xc]
mov dword [eax + edx*8 - 8], ebx
mov dword [eax + edx*8 - 4], esi
lea edi, [esp + edx*8]
add edi, 0x270
add edx, 0xfffffffe
test edx, edx
jne 0x445dc3
mov eax, dword [esp + 0x280]
mov edx, dword [esp + 0x284]
mov esi, eax
mov ecx, dword [esp + 0x34]
shl esi, cl
shld edx, eax, cl
xor eax, eax
test cl, 0x20
cmovne edx, esi
cmove eax, esi
mov esi, dword [esp + 0x14]
mov dword [esp + esi*8 + 0x280], eax
mov dword [esp + esi*8 + 0x284], edx
mov eax, dword [esp + 0x278]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x280]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x284]
setne dl
add edx, eax
mov dword [esp + 0x278], edx
test esi, esi
je 0x44626d
mov eax, dword [esp + 0x14]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x288]
jmp 0x446264
lea eax, [edi - 2]
mov edx, 8
mul edx
lea edx, [esp + ecx*8 + 0x70]
mov dword [esp], edx
seto dl
mov ebx, eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp]
ja 0x445bd1
test dl, dl
jne 0x445bd1
lea eax, [esp + edi*8]
add eax, 0x70
cmp dword [esp + 0x1c], eax
ja 0x445bd1
test dl, dl
jne 0x445bd1
lea ebx, [esp + edi*8]
add ebx, 0x68
cmp dword [esp + 0x1c], ebx
ja 0x445bd1
test dl, dl
jne 0x445bd1
mov edx, dword [esp + 0x14]
lea edx, [esp + edx*8]
add edx, 0x80
lea ebx, [esp + ecx*8]
add ebx, 0x78
lea edi, [esp + edi*8]
add edi, 0x78
cmp edx, edi
lea edi, [esp + 0x80]
setb byte [esp]
cmp ebx, edi
seta byte [esp + 0x10]
cmp edx, eax
lea eax, [esp + 0x78]
setb dl
cmp ebx, eax
seta dh
mov al, byte [esp + 0x10]
test byte [esp], al
jne 0x445bd1
and dl, dh
jne 0x445bd1
shl ecx, 3
mov eax, dword [esp + 0xc]
mov ebx, eax
and ebx, 0xfffffffe
lea edx, [ebx*8]
sub esi, edx
mov dword [esp + 0x10], ebx
neg ebx
lea edx, [esp + 0x70]
add ecx, edx
add ecx, 0xfffffff8
and eax, 1
mov dword [esp], eax
movd xmm0, dword [esp + 0x34]
movd xmm1, dword [esp + 8]
mov eax, dword [esp + 0x1c]
add eax, esp
add eax, 0x70
xor edi, edi
movdqu xmm2, xmmword [eax + edi*8]
movdqu xmm3, xmmword [eax + edi*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
psrlq xmm2, xmm1
por xmm2, xmm3
pshufd xmm2, xmm2, 0x4e
movdqu xmmword [ecx + edi*8], xmm2
add edi, 0xfffffffe
cmp ebx, edi
jne 0x446045
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xc], eax
jne 0x445bd8
jmp 0x44620f
mov eax, esi
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov edi, esi
mov ecx, dword [esp + 0x34]
shl edi, cl
shld eax, esi, cl
xor esi, esi
test cl, 0x20
cmovne eax, edi
cmovne edi, esi
mov edx, dword [esp]
mov ebx, dword [esp + edx*8 + 0x74]
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 8]
shr ebx, cl
mov esi, dword [esp + edx*8 + 0x70]
mov edx, dword [esp + 0xc]
shrd esi, edx, cl
test cl, 0x20
cmovne esi, ebx
mov ecx, 0
cmovne ebx, ecx
or ebx, eax
or esi, edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp]
add eax, ecx
mov dword [esp + eax*8 + 0x78], esi
mov dword [esp + eax*8 + 0x7c], ebx
lea edx, [ecx - 1]
lea esi, [esp + ecx*8]
add esi, 0x70
cmp dword [esp], 1
je 0x44620f
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x78
mov dword [esp + 0xc], ecx
mov dword [esp], esi
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov esi, eax
mov eax, dword [esp + 0x34]
mov ecx, eax
shl esi, cl
mov dword [esp + 0x1c], esi
test al, 0x20
mov ecx, 0
cmovne esi, ecx
mov dword [esp + 0x30], esi
mov ebx, dword [esp + edx*8 + 0x74]
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 8]
shr ebx, cl
mov edi, dword [esp + edx*8 + 0x70]
mov esi, dword [esp + 0x20]
shrd edi, esi, cl
test cl, 0x20
cmovne edi, ebx
mov ecx, 0
cmovne ebx, ecx
or edi, dword [esp + 0x30]
mov ecx, dword [esp]
mov esi, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
mov dword [ecx + edx*8], edi
mov edi, dword [esp + edx*8 + 0x70]
mov dword [esp + 0x30], edi
mov ecx, eax
shl edi, cl
mov dword [esp + 0x20], edi
test al, 0x20
mov dword [esp], edi
mov ecx, 0
mov edi, dword [esp]
cmovne edi, ecx
mov dword [esp], edi
mov ecx, eax
mov edi, dword [esp + 0x10]
shld esi, edi, cl
test al, 0x20
cmovne esi, dword [esp + 0x1c]
or esi, ebx
mov ebx, dword [esp + edx*8 + 0x68]
mov ecx, dword [esp + 0xc]
mov dword [ecx + edx*8 + 4], esi
mov esi, dword [esp + edx*8 + 0x74]
mov ecx, eax
mov edi, dword [esp + 0x30]
shld esi, edi, cl
test al, 0x20
cmovne esi, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
mov edi, dword [esp + edx*8 + 0x6c]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 8]
mov ecx, eax
shr edi, cl
mov dword [esp + 0x20], edi
test al, 0x20
mov ecx, 0
cmovne edi, ecx
mov ecx, eax
mov esi, dword [esp + 0x10]
shrd ebx, esi, cl
test al, 0x20
cmovne ebx, dword [esp + 0x20]
or edi, dword [esp + 0x1c]
or ebx, dword [esp]
mov eax, dword [esp + 0xc]
mov dword [eax + edx*8 - 8], ebx
mov dword [eax + edx*8 - 4], edi
lea esi, [esp + edx*8]
add esi, 0x68
add edx, 0xfffffffe
test edx, edx
jne 0x446107
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov esi, eax
mov ecx, dword [esp + 0x34]
shl esi, cl
shld edx, eax, cl
xor eax, eax
test cl, 0x20
cmovne edx, esi
cmove eax, esi
mov esi, dword [esp + 0x14]
mov dword [esp + esi*8 + 0x78], eax
mov dword [esp + esi*8 + 0x7c], edx
mov eax, dword [esp + 0x70]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x78]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x7c]
setne dl
add edx, eax
mov dword [esp + 0x70], edx
test esi, esi
je 0x44626d
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x14]
shl ecx, 3
push ecx
push 0
push eax
call fcn.0045779e
add esp, 0xc
mov edi, dword [esp + 0x70]
cmp edi, dword [esp + 0x278]
jne 0x4462e3
mov ebx, edi
sub ebx, 1
jb 0x4462eb
mov esi, dword [esp + edi*8 + 0x70]
mov dword [esp + 0xc], esi
mov eax, dword [esp + edi*8 + 0x74]
mov ecx, dword [esp + edi*8 + 0x278]
mov dword [esp], ecx
mov edi, dword [esp + edi*8 + 0x27c]
cmp ecx, esi
mov esi, edi
sbb edi, eax
mov ecx, 1
cmovb edx, ecx
mov ecx, dword [esp + 0xc]
xor ecx, dword [esp]
mov dword [esp + 8], ecx
mov ecx, eax
xor ecx, esi
mov edi, dword [esp + 0xc]
cmp edi, dword [esp]
sbb eax, esi
mov eax, 0xffffffff
cmovb edx, eax
or ecx, dword [esp + 8]
mov edi, ebx
je 0x44627c
xor ecx, ecx
test edx, edx
setg al
je 0x4462eb
xor edx, edx
mov cl, al
jmp 0x4462f4
setae al
movzx ecx, al
jmp 0x4462f2
mov ecx, dword [esp + 0x38]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x38]
adc edx, dword [esp + 0x4c]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x446949
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0x14
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, edx
mov ebx, ecx
jmp 0x444221
mov edi, dword [esp + 4]
add edi, 0xfffffffe
jmp 0x44635d
mov edi, dword [esp + 4]
mov dword [esp + 0x18], edi
mov eax, 0x1004ad28
mov edx, edi
mov ecx, dword [esp + 0x50]
sub edx, ecx
mov ebx, dword [ebp + 8]
mov esi, ebx
sub esi, ecx
xor ecx, ecx
cmp edi, ebx
cmovb esi, edx
mov edx, 0x1004b011
cmovb edx, eax
mov edi, dword [ebp + 0x20]
mov dword [edi + 8], esi
setb cl
lea eax, [ecx + ecx*4]
add eax, 5
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x443863
mov esi, dword [ebp + 8]
lea edx, [esp + 0x18]
mov ecx, dword [esp + 4]
call fcn.0044333e
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
test al, al
jne 0x446403
mov eax, dword [esp + 4]
movzx eax, word [eax]
cmp eax, 0x2a2f
jne 0x446403
mov ebx, dword [esp + 4]
mov ecx, ebx
mov eax, dword [esp + 0x50]
sub ecx, eax
mov edx, esi
sub edx, eax
xor eax, eax
cmp ebx, esi
cmovb edx, ecx
mov ecx, 0x1004aae4
mov esi, 0x1004b011
cmovb esi, ecx
mov ecx, dword [ebp + 0x20]
mov dword [ecx + 8], edx
setb al
lea eax, [eax + eax*2 + 5]
mov dword [ecx], eax
mov dword [ecx + 4], esi
push edi
jmp 0x443867
mov ebx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 4]
jmp 0x44462c
mov ebx, edi
mov edi, dword [ebp + 0x18]
test dl, 0x10
jne 0x446e98
add esi, 0xffffffff
mov dword [esp + 0x18], esi
mov dword [esp], 0x1004ac3d
jmp 0x446cc2
cmp al, 0x2e
jne 0x446f78
movzx eax, byte [esi + 1]
test byte [eax + 0x1003f7a8], 3
je 0x446f4c
mov edx, eax
mov eax, esi
mov ecx, edx
cmp cl, 0x30
je 0x446f54
mov ecx, edx
add ecx, 0xffffffd0
mov dword [esp], ecx
sar ecx, 0x1f
mov dword [esp + 8], ecx
mov dword [esp + 0x10], esi
mov esi, eax
jmp 0x44648d
mov dword [esp], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 8], ecx
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
movzx eax, byte [esi + 2]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446db8
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
jmp 0x4464cf
mov dword [esp], eax
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
movzx eax, byte [esi + 3]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446d6f
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 4]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446d6a
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 5]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446d65
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 6]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446d60
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 7]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446d5b
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 8]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446ca8
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 9]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446ca0
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xa]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c98
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xb]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c90
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xc]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c88
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xd]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c80
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xe]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c78
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0xf]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446c56
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0x10]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446bce
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0x11]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446bc6
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0x12]
mov dword [esp + 0xc], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x446bbe
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ebx, dword [esp + 8]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp], eax
adc ebx, edx
mov dword [esp + 8], ebx
movzx eax, byte [esi + 0x13]
mov dword [esp + 0xc], eax
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x446b97
mov edx, 0xa
mov eax, dword [esp]
mul edx
mov ecx, dword [esp + 8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, ebx
mov dword [esp], eax
adc ecx, edx
movzx eax, byte [esi + 0x14]
add esi, 0x14
mov dword [esp + 0xc], eax
test byte [eax + 0x1003f7a8], 3
mov eax, esi
mov dword [esp + 0x14], esi
mov esi, ecx
jne 0x443d3b
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
add eax, 1
cmp eax, dword [esp + 0x14]
je 0x446cb0
mov ebx, esi
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x10]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x1c], 0
mov esi, 1
sub esi, eax
mov edx, 0
sbb edx, ecx
movzx ecx, byte [esp + 0xc]
test byte [ecx + 0x1003f7a8], 0x20
mov dword [esp + 8], ebx
jne 0x446d0d
cmp eax, 0x159
jge 0x446d1c
mov dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
jmp 0x443f9d
cmp dl, 0x2e
jne 0x446b9f
mov esi, ebx
jmp 0x4467ef
or al, 0x20
cmp al, 0x6e
jne 0x444bee
mov al, byte [ebx + 1]
or al, 0x20
cmp al, 0x61
jne 0x444bee
mov al, byte [ebx + 2]
or al, 0x20
cmp al, 0x6e
jne 0x444bee
add ebx, 3
mov dword [esp + 0x18], ebx
movapd xmm0, xmmword [0x10042f60]
mov ecx, dword [esp + 0x28]
movupd xmmword [ecx], xmm0
jmp 0x443be7
cmp byte [esp + 0x2c], 0x2d
mov edx, dword [esp + 0x24]
mov dword [edx + 0x24], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0x20], 0x14
mov dword [edx + 0x2c], ecx
mov dword [edx + 0x28], 0
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edi, edx
mov edx, dword [ebp + 0x1c]
mov ecx, esi
mov esi, eax
mov eax, dword [ebp + 8]
jmp 0x444589
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x447034
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
jmp 0x444c99
mov edi, dword [esp + 4]
add edi, 1
mov dword [esp + 0x18], edi
mov eax, 0x1004ad4c
jmp 0x446366
test esi, esi
je 0x446aa4
cmp esi, 4
jae 0x446aab
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x446bdd
mov eax, dword [esp + 0x14]
lea edi, [esp + eax*8]
add edi, 0x278
lea eax, [esi - 1]
movq xmm0, qword [esp + esi*8 + 0x278]
movq qword [edi + esi*8], xmm0
mov esi, eax
add edx, 0xffffffff
jne 0x4469a2
jmp 0x446bdf
test edi, edi
je 0x446bd6
cmp edi, 4
jb 0x446e09
lea eax, [edi - 1]
mov ecx, 8
mul ecx
mov ecx, dword [esp + 0x14]
lea esi, [edi + ecx]
lea edx, [esp + esi*8 + 0x70]
seto cl
cmp eax, edx
ja 0x446e09
test cl, cl
jne 0x446e09
lea edx, [esp + edi*8]
add edx, 0x70
cmp eax, edx
ja 0x446e09
test cl, cl
jne 0x446e09
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x78
lea edx, [esp + edi*8]
add edx, 0x78
cmp ecx, edx
jae 0x446a34
lea ecx, [esp + esi*8]
add ecx, 0x78
lea edx, [esp + 0x78]
cmp ecx, edx
ja 0x446e09
mov ebx, edi
and ebx, 0xfffffffc
lea ecx, [ebx - 4]
mov edx, ecx
shr edx, 2
add edx, 1
mov dword [esp], edx
test ecx, ecx
je 0x446dda
shl esi, 3
lea ecx, [esp + 0x70]
add esi, ecx
add esi, 0xfffffff8
lea ecx, [esp + eax]
add ecx, 0x70
mov edx, dword [esp]
and edx, 0xfffffffe
neg edx
xor eax, eax
movups xmm0, xmmword [ecx + eax*8 - 0x10]
movups xmm1, xmmword [ecx + eax*8]
movups xmmword [esi + eax*8], xmm1
movups xmmword [esi + eax*8 - 0x10], xmm0
movdqu xmm0, xmmword [ecx + eax*8 - 0x30]
movdqu xmm1, xmmword [ecx + eax*8 - 0x20]
movdqu xmmword [esi + eax*8 - 0x20], xmm1
movdqu xmmword [esi + eax*8 - 0x30], xmm0
add eax, 0xfffffff8
add edx, 2
jne 0x446a6b
neg eax
jmp 0x446ddc
xor eax, eax
jmp 0x446c3c
lea eax, [esi - 1]
mov ecx, 8
mul ecx
mov ecx, dword [esp + 0x14]
lea edi, [esi + ecx]
lea edx, [esp + edi*8 + 0x278]
seto cl
cmp eax, edx
ja 0x446987
test cl, cl
jne 0x446987
lea edx, [esp + esi*8]
add edx, 0x278
cmp eax, edx
ja 0x446987
test cl, cl
jne 0x446987
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x280
lea edx, [esp + esi*8]
add edx, 0x280
cmp ecx, edx
jae 0x446b21
lea ecx, [esp + edi*8]
add ecx, 0x280
lea edx, [esp + 0x280]
cmp ecx, edx
ja 0x446987
mov ebx, esi
and ebx, 0xfffffffc
lea ecx, [ebx - 4]
mov edx, ecx
shr edx, 2
add edx, 1
mov dword [esp], edx
test ecx, ecx
je 0x446d74
shl edi, 3
lea ecx, [esp + 0x278]
add edi, ecx
add edi, 0xfffffff8
lea ecx, [esp + eax]
add ecx, 0x278
mov edx, dword [esp]
and edx, 0xfffffffe
neg edx
xor eax, eax
movups xmm0, xmmword [ecx + eax*8 - 0x10]
movups xmm1, xmmword [ecx + eax*8]
movups xmmword [edi + eax*8], xmm1
movups xmmword [edi + eax*8 - 0x10], xmm0
movdqu xmm0, xmmword [ecx + eax*8 - 0x30]
movdqu xmm1, xmmword [ecx + eax*8 - 0x20]
movdqu xmmword [edi + eax*8 - 0x20], xmm1
movdqu xmmword [edi + eax*8 - 0x30], xmm0
add eax, 0xfffffff8
add edx, 2
jne 0x446b5e
neg eax
jmp 0x446d76
add esi, 0x13
jmp 0x446dbb
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], 0
xor esi, esi
jmp 0x443e8d
add esi, 0x12
jmp 0x446dbb
add esi, 0x11
jmp 0x446dbb
add esi, 0x10
jmp 0x446dbb
xor eax, eax
jmp 0x446e81
mov eax, esi
cmp ecx, 3
jb 0x446c35
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x278
mov edx, eax
movsd xmm0, qword [esp + eax*8 + 0x278]
movsd qword [ecx + eax*8], xmm0
movsd xmm0, qword [esp + eax*8 + 0x270]
movsd qword [ecx + eax*8 - 8], xmm0
movsd xmm0, qword [esp + eax*8 + 0x268]
movsd qword [ecx + eax*8 - 0x10], xmm0
movq xmm0, qword [esp + eax*8 + 0x260]
movq qword [ecx + eax*8 - 0x18], xmm0
add edx, 0xfffffffc
mov eax, edx
jne 0x446bf3
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x278], eax
test ecx, ecx
jne 0x445f43
jmp 0x44626d
add esi, 0xf
jmp 0x446dbb
cmp al, 0x22
jne 0x44707b
mov edi, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [esp + 4]
mov eax, esi
jmp 0x443bfc
add esi, 0xe
jmp 0x446dbb
add esi, 0xd
jmp 0x446dbb
add esi, 0xc
jmp 0x446dbb
add esi, 0xb
jmp 0x446dbb
add esi, 0xa
jmp 0x446dbb
add esi, 9
jmp 0x446dbb
add esi, 8
jmp 0x446dbb
mov esi, dword [esp + 0x14]
add esi, 0xffffffff
mov dword [esp + 0x18], esi
mov dword [esp], 0x1004aaa5
mov ebx, dword [ebp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x50]
sub edx, ecx
mov edi, esi
mov eax, dword [ebp + 8]
mov esi, eax
sub esi, ecx
xor ecx, ecx
cmp edi, eax
cmovb esi, edx
mov edx, 0x1004b011
cmovb edx, dword [esp]
mov edi, dword [ebp + 0x20]
mov dword [edi + 8], esi
setb cl
lea eax, [ecx*4 + 5]
mov dword [edi], eax
mov dword [edi + 4], edx
push dword [esp + 0x24]
push ebx
call dword [ebp + 0x14]
add esp, 8
xor edi, edi
jmp 0x4445c4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], esi
mov esi, edx
jmp 0x443e8d
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
shl eax, 0x1f
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
jmp 0x444221
add esi, 7
jmp 0x446dbb
add esi, 6
jmp 0x446dbb
add esi, 5
jmp 0x446dbb
add esi, 4
jmp 0x446dbb
add esi, 3
jmp 0x446dbb
xor eax, eax
test byte [esp], 1
je 0x446da8
not eax
add eax, esi
movdqu xmm0, xmmword [esp + eax*8 + 0x268]
movdqu xmm1, xmmword [esp + eax*8 + 0x278]
add eax, dword [esp + 0x14]
movdqu xmmword [esp + eax*8 + 0x278], xmm1
movdqu xmmword [esp + eax*8 + 0x268], xmm0
cmp esi, ebx
je 0x446c35
and esi, 3
jmp 0x446987
add esi, 2
mov dword [esp + 0x14], esi
mov esi, dword [esp + 8]
jmp 0x44683d
xor eax, eax
test byte [esp], 1
je 0x446e02
not eax
add eax, edi
movdqu xmm0, xmmword [esp + eax*8 + 0x60]
movdqu xmm1, xmmword [esp + eax*8 + 0x70]
add eax, dword [esp + 0x14]
movdqu xmmword [esp + eax*8 + 0x70], xmm1
movdqu xmmword [esp + eax*8 + 0x60], xmm0
cmp edi, ebx
je 0x446e7d
and edi, 3
lea ecx, [edi - 1]
mov edx, edi
and edx, 3
je 0x446e34
mov eax, dword [esp + 0x14]
lea esi, [esp + eax*8]
add esi, 0x70
lea eax, [edi - 1]
movq xmm0, qword [esp + edi*8 + 0x70]
movq qword [esi + edi*8], xmm0
mov edi, eax
add edx, 0xffffffff
jne 0x446e1d
jmp 0x446e36
mov eax, edi
cmp ecx, 3
jb 0x446e7d
mov ecx, dword [esp + 0x14]
lea ecx, [esp + ecx*8]
add ecx, 0x70
mov edx, eax
movsd xmm0, qword [esp + eax*8 + 0x70]
movsd qword [ecx + eax*8], xmm0
movsd xmm0, qword [esp + eax*8 + 0x68]
movsd qword [ecx + eax*8 - 8], xmm0
movsd xmm0, qword [esp + eax*8 + 0x60]
movsd qword [ecx + eax*8 - 0x10], xmm0
movq xmm0, qword [esp + eax*8 + 0x58]
movq qword [ecx + eax*8 - 0x18], xmm0
add edx, 0xfffffffc
mov eax, edx
jne 0x446e47
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x70], eax
test ecx, ecx
jne 0x446256
jmp 0x44626d
mov ecx, eax
add al, 0xb7
cmp al, 0x25
ja 0x446424
movzx eax, al
jmp dword [eax*4 + 0x10043d10]
add esi, 1
jmp 0x446cb4
mov eax, esi
movzx ecx, byte [eax + 2]
add eax, 1
cmp ecx, 0x30
je 0x446f56
mov edx, ecx
mov cl, byte [edx + 0x1003f7a8]
test cl, 3
jne 0x44645f
add eax, 1
mov esi, eax
test cl, 3
jne 0x44709b
test cl, 0x20
jne 0x4470ae
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
sete al
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
shl eax, 0x1f
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], 0
mov dword [esp + 4], esi
mov dword [esp + 0x18], esi
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov edi, ecx
mov eax, edx
jmp 0x444221
xor eax, eax
cmp byte [esp + 0x2c], 0x2d
mov edx, dword [esp + 0x24]
mov dword [edx + 0x24], 0
mov ecx, 0xfff00000
mov esi, 0x7ff00000
cmove esi, ecx
cmove eax, eax
mov dword [edx + 0x20], 0x14
mov dword [edx + 0x2c], esi
mov dword [edx + 0x28], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edi, edx
jmp 0x44472d
mov edi, dword [esp + 4]
mov dword [esp + 0x18], edi
mov eax, 0x1004ad01
jmp 0x446366
add esi, 0xffffffff
mov dword [esp + 0x18], esi
mov dword [esp], 0x1004af1e
jmp 0x446cc2
movzx eax, byte [esi + 1]
mov al, byte [eax + 0x1003f7a8]
and al, 0xc
cmp al, 1
sbb esi, 0
movzx eax, byte [esi + 2]
add esi, 2
test byte [eax + 0x1003f7a8], 3
je 0x4470e4
movzx eax, byte [esi + 1]
add esi, 1
test byte [eax + 0x1003f7a8], 3
jne 0x4470cf
jmp 0x446f8a
add esi, 0xffffffff
mov dword [esp + 0x18], esi
mov dword [esp], 0x1004ac20
jmp 0x446cc2