Function at 0x434210
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
movsd xmm0, qword [ebp + 8]
mov eax, dword [ebp + 0x1c]
movsd qword [ebp - 0x8c], xmm0
mov ecx, dword [ebp - 0x88]
test ecx, ecx
jns 0x43424f
and ecx, 0x7fffffff
mov dword [eax], 1
mov dword [ebp - 0x88], ecx
movsd xmm0, qword [ebp - 0x8c]
jmp 0x434255
mov dword [eax], 0
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x4342b5
cmp dword [ebp - 0x8c], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x270f
jne 0x434299
test ecx, 0xfffff
jne 0x434299
push 8
push dword [ebp + 0x20]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push str.Infinity
call fcn.00436350
add esp, 0x14
mov esp, ebp
pop ebp
ret
push 3
push dword [ebp + 0x20]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push 0x46c58c
call fcn.00436350
add esp, 0x14
mov esp, ebp
pop ebp
ret
ucomisd xmm0, qword [0x46bdb0]
lahf
test ah, 0x44
jp 0x4342e8
mov eax, dword [ebp + 0x18]
push 1
push dword [ebp + 0x20]
push dword [ebp + 0x28]
mov dword [eax], 1
push dword [ebp + 0x24]
push 0x46c590
call fcn.00436350
add esp, 0x14
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [ebp - 0x8c]
mov edx, ecx
push edi
mov edi, ecx
shr edx, 0x14
and edi, 0xfffff
mov dword [ebp - 0x28], edx
shld edi, ebx, 0xb
mov dword [ebp - 0x3c], edx
shl ebx, 0xb
mov dword [ebp - 0x64], ebx
test edx, edx
je 0x434330
or edi, 0x80000000
mov dword [ebp - 0x34], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0xa0], 0
jmp 0x434418
shld edi, ebx, 1
xor eax, eax
mov dword [ebp - 0xa0], 1
add ebx, ebx
mov dword [ebp - 8], edi
or eax, edi
mov dword [ebp - 0x64], ebx
jne 0x434361
mov edi, ebx
mov edx, 0xffffffe0
xor ebx, ebx
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
mov ecx, edi
xor eax, eax
and ecx, 0xffff0000
or eax, ecx
jne 0x434385
shld edi, ebx, 0x10
shl ebx, 0x10
sub edx, 0x10
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
mov ecx, edi
xor eax, eax
and ecx, 0xff000000
or eax, ecx
jne 0x4343a9
shld edi, ebx, 8
shl ebx, 8
sub edx, 8
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
mov ecx, edi
xor eax, eax
and ecx, 0xf0000000
or eax, ecx
jne 0x4343cd
shld edi, ebx, 4
shl ebx, 4
sub edx, 4
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
mov ecx, edi
xor eax, eax
and ecx, 0xc0000000
or eax, ecx
jne 0x4343f1
shld edi, ebx, 2
shl ebx, 2
sub edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
test edi, edi
jl 0x43440e
jg 0x4343fb
test ebx, ebx
jb 0x43440e
shld edi, ebx, 1
add ebx, ebx
mov dword [ebp - 8], edi
dec edx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x3c], edx
mov eax, 1
sub eax, edx
mov dword [ebp - 0x34], eax
push esi
movsx esi, word [edx*2 + 0x47bade]
lea ecx, [edx - 0x3fe]
mov eax, esi
mov dword [ebp + 0xc], 0
shl eax, 4
add eax, 0x4790b8
mov dword [ebp - 0x10], 0
cmp ecx, dword [eax + 0xc]
jl 0x434469
jne 0x43446a
cmp dword [ebp + 0xc], 0
jb 0x434469
ja 0x434452
cmp edi, dword [eax]
jb 0x434469
cmp edi, dword [eax]
jne 0x43446a
cmp dword [ebp + 0xc], 0
jne 0x43446a
cmp dword [ebp - 0x10], 0
ja 0x43446a
jb 0x434469
cmp ebx, dword [eax + 4]
jae 0x43446a
dec esi
mov eax, dword [ebp + 0x10]
add esi, 0xfffffeaa
mov dword [ebp - 0x38], esi
test eax, eax
js 0x43447f
cmp eax, 9
jle 0x434481
xor eax, eax
cmp eax, 5
mov dword [ebp - 0x78], 1
lea edx, [eax - 4]
mov dword [ebp - 0x44], 0xffffffff
cmovle edx, eax
mov eax, edx
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x28]
cmp eax, 5
ja case.default.0x4344a5
jmp dword [eax*4 + 0x435ee8]
mov ecx, 0x12
mov dword [ebp - 0xac], 0
jmp 0x434509
mov dword [ebp - 0x78], 0
mov eax, dword [ebp + 0x14]
mov ecx, 1
test eax, eax
cmovg ecx, eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0xac], ecx
jmp 0x434509
mov dword [ebp - 0x78], 0
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xac], eax
lea ecx, [eax + 1]
mov eax, 1
add ecx, esi
test ecx, ecx
mov dword [ebp - 0x44], ecx
cmovle ecx, eax
jmp 0x434509
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x4345a9
push ecx
call fcn.00436610
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x58]
mov esi, eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x74], 0
cmp ecx, 2
jl 0x434540
cmp dword [ebp - 0x78], 0
je 0x434573
cmp dword [ebp - 0x8c], 0
jne 0x434573
mov eax, dword [ebp - 0x88]
test eax, 0xfffff
jne 0x434573
mov dword [ebp - 0x74], 0
test eax, 0x7fe00000
mov edx, dword [ebp - 0x74]
mov eax, 1
cmovne edx, eax
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], 0
test eax, eax
jns 0x4345c4
cmp ecx, 3
je 0x43458b
cmp ecx, 5
jne 0x4345c4
xor edi, edi
mov dword [ebp + 0xc], edi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0x5c]
not eax
mov dword [ebp - 0x38], eax
jmp 0x435e00
cmp dword [ebp + 0x28], ecx
ja 0x434526
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4345bb
mov dword [eax], ecx
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x433
mov dword [ebp - 0x20], 1
sub ecx, edx
mov dword [ebp - 0x9c], 0
mov edx, dword [ebp - 0x38]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], ecx
movlpd qword [ebp - 0xbc], xmm0
test edx, edx
jns 0x43476e
cmp edx, 0xffffffe7
jl 0x4347b9
mov ecx, dword [ebp - 0x38]
mov edx, ebx
not ecx
shrd edx, edi, 0xb
mov dword [ebp + 0xc], ecx
shr edi, 0xb
mov eax, dword [ecx*4 + 0x47cbb8]
add eax, 0x35
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], edi
cmp eax, 0x3d
jle 0x434688
add eax, 0xffffffc3
xor ecx, ecx
bts ecx, eax
mov dword [ebp - 0x9c], eax
xor esi, esi
cmp eax, 0x20
cmovae esi, ecx
xor ecx, esi
mov dword [ebp - 0x80], esi
cmp eax, 0x40
mov eax, esi
mov esi, dword [ebp - 0x30]
cmovae eax, ecx
add ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
adc eax, 0xffffffff
and ecx, edx
mov dword [ebp - 0x80], eax
and eax, edi
or ecx, eax
jne 0x4347c7
mov eax, dword [ebp - 0x9c]
movq xmm1, qword [ebp - 0x50]
sub dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
movd xmm0, eax
psrlq xmm1, xmm0
movq qword [ebp - 0x50], xmm1
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
jmp 0x434694
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx*8 + 0x47cae0]
mov ecx, dword [ecx*8 + 0x47cae4]
push edi
push edx
push ecx
push eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x90], ecx
call fcn.00436b70
mov ebx, eax
mov edi, edx
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], edi
test eax, eax
je 0x434709
movq xmm1, qword [ebp - 0x94]
mov edx, dword [ebp + 0xc]
movd xmm0, eax
psrlq xmm1, xmm0
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 4]
movq qword [ebp - 0x94], xmm1
mov eax, dword [ebp - 0x90]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x78], edx
mov dword [ebp + 0xc], eax
jmp 0x43471b
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x1c], ecx
jne 0x4351cd
mov eax, 5
mov dword [ebp + 0xc], 0
xor edx, edx
call fcn.00436bb0
cmp edi, edx
ja 0x4349a1
jb 0x434753
cmp ebx, eax
ja 0x4349a1
mov eax, dword [ebp + 0xc]
xor edi, edi
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xac]
not eax
mov dword [ebp - 0x38], eax
jmp 0x435e00
test eax, eax
jne 0x43479c
lea eax, [edx + ecx]
test eax, eax
js 0x43479c
mov eax, dword [edx*8 + 0x47cad8]
mov edx, dword [edx*8 + 0x47cadc]
mov dword [ebp + 0xc], 0
call fcn.00436bb0
shrd ebx, edi, 0xb
shr edi, 0xb
jmp 0x434741
cmp edx, dword [0x4790b0]
jg 0x4347b9
add ecx, edx
js 0x4347b9
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
jmp 0x434f12
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
jmp 0x4347ca
mov edx, dword [ebp - 0x38]
cmp dword [ebp - 0x44], 0x1c
jg 0x4359a5
mov eax, edx
mov ecx, 0x47a618
shl eax, 4
sub ecx, eax
mov dword [ebp - 0x98], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [ebp + 0xc], eax
xor eax, eax
push eax
push ebx
push eax
push edi
call fcn.00436b70
xor eax, eax
mov esi, edx
push eax
push dword [ebp - 0x64]
xor ebx, ebx
push eax
push dword [ebp + 0xc]
call fcn.00436b70
add esi, eax
adc ebx, edx
xor eax, eax
push eax
push dword [ebp - 8]
push eax
push edi
call fcn.00436b70
add eax, esi
mov edi, edx
adc edi, 0
xor eax, eax
push eax
push dword [ebp - 0x64]
xor esi, esi
push eax
mov eax, dword [ebp - 0x98]
push dword [eax]
call fcn.00436b70
add edi, eax
adc esi, edx
add edi, ebx
adc esi, 0
xor ebx, ebx
push ebx
push dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
call fcn.00436b70
add eax, edi
mov edi, dword [ebp - 8]
push ebx
mov dword [ebp - 0x54], eax
adc edx, ebx
mov eax, dword [ebp - 0x98]
push edi
push ebx
mov dword [ebp - 0x10], edx
push dword [eax]
call fcn.00436b70
mov ecx, dword [ebp - 0x28]
mov ebx, eax
mov eax, edx
mov edx, dword [ebp - 0x10]
add ebx, edx
adc eax, 0
lea ecx, [ecx - 0x3fe]
mov dword [ebp - 0x10], eax
add ebx, esi
mov esi, eax
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x98]
adc esi, 0
mov dword [ebp - 0x4c], esi
mov eax, dword [eax + 0xc]
lea ecx, [ecx + eax]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
lea eax, [eax - 0x36]
lea eax, [eax + ecx]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x18], eax
js 0x4348e0
jg 0x4348bb
test ebx, ebx
jb 0x4348e0
mov eax, dword [ebp - 0x54]
dec ecx
shld edx, eax, 1
shld esi, ebx, 1
add eax, eax
mov dword [ebp - 0x3c], ecx
and edx, 1
mov dword [ebp - 0x54], eax
add ebx, ebx
xor eax, eax
or ebx, edx
or esi, eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x44], 0x13
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], esi
jg 0x434cc5
mov ecx, dword [ebp - 0x98]
mov eax, 4
sub eax, dword [ebp - 0x3c]
xor esi, esi
movq xmm1, qword [ebp - 0x50]
xor ebx, ebx
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
movd xmm0, eax
mov eax, dword [ebp + 0xc]
shld esi, edx, 0x1d
psrlq xmm1, xmm0
shl edx, 0x1d
or ebx, esi
shr eax, 3
or eax, edx
movq qword [ebp - 0x50], xmm1
mov edx, dword [ebp - 0x4c]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], ebx
test ecx, ecx
jne 0x4349ba
mov esi, dword [ebp - 0x50]
mov eax, edx
mov ecx, esi
and eax, 0x7ffffff
and ecx, 0xfffffffe
or ecx, eax
je 0x4359a5
mov ecx, esi
mov eax, edx
not ecx
not eax
and ecx, 0xfffffffe
and eax, 0x7ffffff
or ecx, eax
je 0x4359a5
xor edi, edi
mov dword [ebp + 0xc], edi
cmp edx, 0x50000000
ja 0x4349a3
jb 0x434988
test esi, esi
jae 0x4349a3
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xac]
not eax
mov dword [ebp - 0x38], eax
jmp 0x435e00
xor edi, edi
mov eax, dword [ebp + 0xc]
inc dword [ebp - 0x38]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x31
lea esi, [eax + 1]
jmp 0x435e00
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], 0
nop
mov eax, edx
mov dword [ebp - 0x30], ecx
shr eax, 0x1c
and edx, 0xfffffff
add al, 0x30
mov dword [ebp - 0x50], ecx
mov byte [esi], al
inc esi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x4c], edx
test eax, eax
jns 0x434b9e
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x28], eax
mov eax, 0x10000000
sbb eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jle 0x434ad3
movq xmm1, qword [ebp - 0x94]
dec eax
movd xmm0, eax
psllq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
cmp edx, dword [ebp - 0xc]
ja 0x434a81
jb 0x434a35
cmp ecx, dword [ebp - 0x28]
ja 0x434a81
mov eax, dword [ebp - 0x14]
sub dword [ebp - 0x28], eax
mov edi, dword [ebp - 0xc]
sbb edi, dword [ebp - 4]
add eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
adc eax, edx
cmp eax, edi
mov edi, dword [ebp - 8]
ja 0x434cc5
jb 0x434a64
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x28]
ja 0x434cc5
cmp edx, dword [ebp - 0x6c]
jb 0x435e87
ja 0x434ba7
cmp ecx, dword [ebp - 0x70]
jb 0x435e87
jmp 0x434ba7
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x10], ecx
mov ecx, edx
sbb ecx, dword [ebp - 4]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
adc eax, dword [ebp - 0xc]
cmp ecx, eax
jb 0x434cc5
ja 0x434ab0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x40]
jbe 0x434cc5
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x6c]
jb 0x435956
ja 0x434ba7
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x70]
jb 0x435956
jmp 0x434ba7
add eax, 0x3f
xor ecx, ecx
bts ecx, eax
xor edi, edi
cmp eax, 0x20
cmovae edi, ecx
xor ecx, edi
mov dword [ebp - 0x40], edi
cmp eax, 0x40
mov eax, edi
mov edi, dword [ebp - 8]
cmovae eax, ecx
neg ecx
mov dword [ebp - 0x6c], ecx
adc eax, 0
and ecx, dword [ebp - 0x30]
neg eax
mov dword [ebp - 0x40], eax
and eax, edx
or ecx, eax
jne 0x434b66
movq xmm1, qword [ebp - 0x50]
mov eax, 1
sub eax, dword [ebp - 0x18]
movd xmm0, eax
psllq xmm1, xmm0
movq qword [ebp - 0xb4], xmm1
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x7c], eax
cmp eax, ebx
ja 0x434b66
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp + 0xc]
jb 0x434b42
cmp ecx, eax
jae 0x434b66
cmp dword [ebp - 0x74], 0
je 0x434c5d
shld dword [ebp - 0x7c], ecx, 1
add ecx, ecx
cmp dword [ebp - 0x7c], ebx
jb 0x434c5d
ja 0x434b66
cmp ecx, eax
jb 0x434c5d
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x40]
and eax, dword [ebp - 0x28]
and ecx, dword [ebp - 0xc]
or eax, ecx
jne 0x434ba7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
neg ecx
mov edx, dword [ebp - 0xc]
call fcn.00436bb0
cmp edx, ebx
jb 0x434e35
ja 0x434b99
cmp eax, dword [ebp + 0xc]
jb 0x434e35
mov edx, dword [ebp - 0x10]
jmp 0x434ba7
cmp dword [ebp - 0x20], eax
je 0x434e64
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ecx
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
adc dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
shld ecx, eax, 1
add eax, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x14], eax
cmp ecx, 0x10000000
ja 0x434cc5
jb 0x434be8
test eax, eax
jae 0x434cc5
mov eax, dword [ebp - 0x30]
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
adc edx, ecx
mov ecx, ebx
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
shld ecx, eax, 2
shl eax, 2
add dword [ebp + 0xc], eax
adc ebx, ecx
mov ecx, dword [ebp + 0xc]
test ebx, ebx
jg 0x434c34
jl 0x434c26
test ecx, ecx
jae 0x434c34
shrd ecx, ebx, 3
mov eax, 4
shr ebx, 3
jmp 0x434c40
shrd ecx, ebx, 2
mov eax, 3
shr ebx, 2
inc dword [ebp - 0x20]
add dword [ebp - 0x18], eax
mov dword [ebp - 0x94], ecx
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x90], ebx
jmp 0x4349d0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x30]
add eax, edi
mov ecx, dword [ebp - 4]
adc ecx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x40], ecx
mov ecx, 1
sub ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x40]
call fcn.00436bb0
cmp edx, ebx
ja 0x434cc5
jb 0x434c8b
cmp eax, dword [ebp + 0xc]
jae 0x434cc5
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
cmp ebx, eax
ja 0x434e0f
jb 0x434ca4
cmp dword [ebp - 0x28], edi
jae 0x434e0f
mov ecx, dword [ebp - 0x14]
sub edi, ecx
mov edx, dword [ebp - 4]
sbb eax, edx
add ecx, dword [ebp - 0x28]
adc edx, ebx
cmp edx, eax
ja 0x434cc5
jb 0x435956
cmp ecx, edi
jb 0x435956
movq xmm1, qword [ebp - 0xa8]
mov ecx, 4
sub ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x84], eax
movd xmm0, ecx
psrlq xmm1, xmm0
mov dword [ebp - 0x80], 0
movq qword [ebp - 0x50], xmm1
je 0x434d38
movq xmm2, qword [ebp - 0xa8]
mov eax, 0x40
movq xmm1, qword [ebp - 0x84]
sub eax, ecx
movd xmm0, eax
psllq xmm2, xmm0
movd xmm0, ecx
psrlq xmm2, 0x20
psrlq xmm1, xmm0
por xmm2, xmm1
movq qword [ebp - 0x84], xmm2
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x54], eax
mov eax, 4
mov dword [ebp - 0x7c], 1
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov dword [ebp - 0x68], eax
xorps xmm0, xmm0
xor eax, eax
movlpd qword [ebp - 0x2c], xmm0
mov edx, dword [ebp - 0x2c]
xor edi, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], edx
mov ebx, dword [eax + 4]
mov eax, dword [eax]
shld ecx, eax, 0x1d
shr ebx, 3
shl eax, 0x1d
or ebx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
or edi, ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0x90], edi
shr eax, 0x1c
and ecx, 0xfffffff
add al, 0x30
mov dword [ebp - 0x94], ebx
mov byte [esi], al
inc esi
cmp dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], esi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0xc], ecx
jge 0x4356bc
mov dword [ebp - 8], 0
xorps xmm0, xmm0
sub dword [ebp - 8], eax
mov eax, 0x10000000
movlpd qword [ebp - 0xa8], xmm0
sbb eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x54]
or eax, dword [ebp - 0x80]
je 0x43548f
xor eax, eax
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x98], eax
mov eax, 1
sbb eax, dword [ebp - 0x80]
add dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x9c], eax
adc dword [ebp - 0x14], 0xffffffff
jmp 0x4354a7
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
sbb ebx, dword [ebp - 4]
cmp ebx, dword [ebp - 0x40]
jb 0x434cc5
ja 0x435e87
cmp eax, dword [ebp - 0x6c]
jb 0x434cc5
jmp 0x435e87
mov eax, dword [ebp - 0x28]
mov ecx, 1
sub ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xc]
call fcn.00436bb0
cmp edx, ebx
jb 0x435956
ja 0x434cc5
cmp eax, dword [ebp + 0xc]
jb 0x435956
jmp 0x434cc5
xor eax, eax
mov ebx, 0x10000000
sub eax, ecx
mov dword [ebp - 0x18], eax
sbb ebx, edx
mov dword [ebp + 0xc], ebx
cmp ebx, edx
ja 0x434ecd
jb 0x434e7f
cmp eax, ecx
jae 0x434ecd
mov ebx, dword [ebp - 4]
cmp dword [ebp + 0xc], ebx
jb 0x434ead
mov eax, dword [ebp - 0x14]
ja 0x434e91
cmp dword [ebp - 0x18], eax
jbe 0x434ead
sub ecx, eax
sbb edx, ebx
add eax, dword [ebp - 0x18]
adc ebx, dword [ebp + 0xc]
cmp edx, ebx
ja 0x435956
jb 0x434ead
cmp ecx, eax
ja 0x435956
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
add ecx, edx
js 0x434cc5
test edx, edx
js 0x434cc5
cmp edx, 0x1b
jle 0x434f12
jmp 0x434cc5
mov ebx, dword [ebp - 4]
cmp edx, ebx
jb 0x434efb
mov eax, dword [ebp - 0x14]
ja 0x434edd
cmp ecx, eax
jbe 0x434efb
sub dword [ebp - 0x18], eax
sbb dword [ebp + 0xc], ebx
add eax, ecx
adc ebx, edx
cmp dword [ebp + 0xc], ebx
ja 0x435e87
jb 0x434efb
cmp dword [ebp - 0x18], eax
ja 0x435e87
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
add ecx, edx
js 0x434cc5
cmp edx, 0x1b
ja 0x434cc5
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x5c]
shrd ebx, edi, 0xb
mov dword [ebp + 0xc], 1
shr edi, 0xb
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 1
test edx, edx
jle 0x4351b8
lea eax, [ecx + 1]
mov dword [ebp - 0x34], eax
mov eax, dword [edx*8 + 0x47cad8]
mov edx, dword [edx*8 + 0x47cadc]
call fcn.00436bb0
mov ecx, edx
mov dword [ebp - 0x18], eax
push ecx
push eax
push edi
push ebx
mov dword [ebp - 0xc], ecx
call fcn.00436900
push dword [ebp - 0xc]
mov edx, esi
mov dword [ebp - 0x28], eax
push dword [ebp - 0x18]
lea ecx, [eax + 0x30]
mov byte [edx], cl
lea esi, [edx + 1]
cdq
push edx
push eax
call fcn.00436b70
sub ebx, eax
mov ecx, 1
mov eax, ebx
mov dword [ebp - 0x50], ebx
sbb edi, edx
mov dword [ebp - 0x20], ecx
or eax, edi
mov dword [ebp - 0x4c], edi
je 0x435e87
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
lea edx, [eax*8 + 0x47cad8]
mov dword [ebp - 0x7c], edx
nop word [eax + eax]
mov eax, dword [ebp - 0x44]
test eax, eax
jns 0x43506d
mov eax, dword [ebp - 0x18]
mov edx, ebx
mov ecx, dword [ebp - 0xc]
sub eax, ebx
mov dword [ebp - 0x58], edi
sbb ecx, edi
mov dword [ebp - 0x64], eax
shld dword [ebp - 0x58], edx, 1
mov dword [ebp - 0x3c], ecx
add edx, edx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x58], edx
ja 0x43504c
mov ecx, dword [ebp + 0xc]
jb 0x434ffc
cmp dword [ebp - 0x10], ecx
ja 0x435049
cmp dword [ebp - 0x74], 0
je 0x43502b
mov eax, edi
mov edx, ebx
shld eax, edx, 2
shl edx, 2
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 4]
cmp eax, edx
jb 0x4353c3
ja 0x435026
cmp dword [ebp - 0x6c], ecx
jbe 0x4353c3
mov eax, dword [ebp - 0x64]
jmp 0x435049
cmp dword [ebp - 0x58], edx
jb 0x4353c6
ja 0x43503f
cmp dword [ebp - 0x10], ecx
jb 0x4353c6
test byte [ebp - 0x28], 1
jne 0x4353c6
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x435956
ja 0x435065
cmp eax, dword [ebp + 0xc]
jb 0x435956
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x7c]
jmp 0x435075
cmp ecx, eax
je 0x43512b
dec dword [ebp - 0x40]
inc ecx
sub edx, 8
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x34], ecx
jge 0x4350c9
mov edx, dword [ebp + 0xc]
mov eax, ebx
mov ecx, edi
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov eax, edx
adc edi, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
shld ecx, eax, 2
shld edi, ebx, 1
shl eax, 2
add ebx, ebx
add edx, eax
mov eax, dword [ebp - 4]
adc eax, ecx
mov ecx, dword [ebp - 0xc]
shld eax, edx, 1
add edx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp + 0xc], edx
jmp 0x4350e7
cmp ecx, dword [ebp - 0x38]
jg 0x4351b8
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x40]
call fcn.00436bb0
mov ecx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], ecx
push ecx
push eax
push edi
push ebx
call fcn.00436900
push dword [ebp - 0xc]
mov ecx, eax
push dword [ebp - 0x18]
mov al, cl
mov dword [ebp - 0x28], ecx
add al, 0x30
mov byte [esi], al
mov eax, ecx
cdq
inc esi
push edx
push eax
call fcn.00436b70
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x50], ebx
sbb edi, edx
or eax, edi
mov dword [ebp - 0x4c], edi
je 0x435e87
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x7c]
jmp 0x434fc0
call fcn.00441b14
sub eax, 0
je 0x435e87
sub eax, 2
je 0x435956
mov ecx, dword [ebp - 0xc]
mov edx, ebx
mov eax, edi
shld eax, edx, 1
add edx, edx
mov dword [ebp - 0x10], eax
cmp eax, ecx
ja 0x435956
mov eax, dword [ebp - 0x18]
jb 0x435167
cmp edx, eax
ja 0x435956
cmp edx, eax
jne 0x43517a
cmp dword [ebp - 0x10], ecx
jne 0x43517a
test byte [ebp - 0x28], 1
jne 0x435956
cmp dword [ebp - 0x74], 0
je 0x435e87
mov ecx, dword [ebp - 4]
cmp edi, ecx
ja 0x435e87
mov eax, dword [ebp + 0xc]
jb 0x43519c
cmp ebx, eax
ja 0x435e87
cmp dword [ebp - 0x10], ecx
ja 0x435956
jb 0x435e87
cmp edx, eax
jae 0x435956
jmp 0x435e87
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x58], eax
movq xmm1, qword [ebp - 0x50]
movd xmm0, ecx
psrlq xmm1, xmm0
movq qword [ebp - 0x8c], xmm1
mov ecx, dword [ebp - 0x8c]
mov al, cl
mov edx, dword [ebp - 0x88]
add al, 0x30
mov byte [esi], al
inc esi
mov dword [ebp - 0x28], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], esi
call fcn.00436bb0
sub ebx, eax
mov eax, ebx
sbb edi, edx
or eax, edi
je 0x435e87
cmp dword [ebp - 0x44], 0
jge 0x4352d6
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, ecx
mov dword [ebp - 0x64], ecx
cmovae edx, eax
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x64], eax
sbb edx, edi
mov dword [ebp - 0x3c], edx
mov edx, edi
shld edx, ecx, 1
mov dword [ebp - 0x10], edx
add ecx, ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x10], edx
ja 0x4352b6
mov ecx, dword [ebp + 0xc]
jb 0x435266
cmp dword [ebp - 0x34], ecx
ja 0x4352b6
cmp dword [ebp - 0x74], 0
je 0x435295
mov eax, edi
mov ecx, ebx
shld eax, ecx, 2
shl ecx, 2
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp + 0xc]
cmp eax, edx
jb 0x4353c3
ja 0x435290
cmp dword [ebp - 0x6c], ecx
jbe 0x4353c3
mov eax, dword [ebp - 0x64]
jmp 0x4352b6
cmp dword [ebp - 0x10], edx
jb 0x4353c6
ja 0x4352a9
cmp dword [ebp - 0x34], ecx
jb 0x4353c6
test byte [ebp - 0x8c], 1
jne 0x4353c6
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x435956
mov edx, dword [ebp + 0xc]
ja 0x4352d9
cmp eax, edx
jb 0x435956
jmp 0x4352d9
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
dec ecx
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ebp - 0x44]
je 0x4353fa
inc eax
mov ecx, edi
mov dword [ebp - 0x20], eax
mov eax, ebx
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov dword [ebp - 0x50], ebx
adc edi, ecx
cmp dword [ebp - 0x9c], 0
mov dword [ebp - 0x4c], edi
je 0x435360
mov edx, dword [ebp - 0x24]
and edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x80]
mov eax, edx
and esi, dword [ebp - 0x78]
mov ecx, esi
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov dword [ebp - 0x58], edx
mov eax, edx
adc esi, ecx
mov ecx, dword [ebp - 0x9c]
mov edx, esi
mov dword [ebp - 0x78], esi
call fcn.00436bd0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 4]
shld esi, ecx, 2
shl ecx, 2
add dword [ebp + 0xc], ecx
mov ecx, dword [ebp - 4]
adc ecx, esi
add dword [ebp + 0xc], eax
mov esi, dword [ebp - 0x30]
adc edx, ecx
mov dword [ebp - 4], edx
jmp 0x435377
mov ecx, dword [ebp - 4]
mov eax, edx
mov dword [ebp - 4], ecx
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov dword [ebp + 0xc], edx
adc dword [ebp - 4], ecx
movq xmm1, qword [ebp - 0x50]
movd xmm0, dword [ebp - 0x1c]
psrlq xmm1, xmm0
movq qword [ebp - 0x8c], xmm1
mov ecx, dword [ebp - 0x8c]
mov al, cl
mov edx, dword [ebp - 0x88]
add al, 0x30
mov byte [esi], al
inc esi
mov dword [ebp - 0x28], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], esi
call fcn.00436bb0
sub ebx, eax
mov eax, ebx
sbb edi, edx
or eax, edi
jne 0x435213
jmp 0x435e87
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
cmp ecx, edi
jb 0x435956
ja 0x4353db
cmp eax, ebx
jb 0x435956
cmp eax, ebx
jne 0x435e87
cmp ecx, edi
jne 0x435e87
test byte [ebp - 0x28], 1
jne 0x435956
jmp 0x435e87
xor eax, eax
xor edx, edx
bts eax, ecx
cmp ecx, 0x20
cmovae edx, eax
xor eax, edx
mov dword [ebp - 0x24], edx
cmp ecx, 0x40
mov dword [ebp - 0x6c], eax
mov ecx, edx
mov edx, dword [ebp + 0xc]
cmovae ecx, eax
mov dword [ebp - 0x24], ecx
mov ecx, eax
mov eax, dword [ebp - 0x24]
and ecx, ebx
and eax, edi
or ecx, eax
je 0x43544f
test byte [ebp - 0x8c], 1
jne 0x435956
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x24]
add eax, 0xffffffff
adc ecx, 0xffffffff
and eax, ebx
and ecx, edi
or eax, ecx
jne 0x435956
cmp dword [ebp - 0x74], 0
je 0x435e87
mov eax, dword [ebp - 4]
cmp edi, eax
ja 0x435e87
jb 0x43546e
cmp ebx, edx
ja 0x435e87
shld edi, ebx, 1
add ebx, ebx
cmp edi, eax
ja 0x435956
jb 0x435e87
cmp ebx, edx
jae 0x435956
jmp 0x435e87
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jg 0x435825
add eax, 0x3c
xor ecx, ecx
bts ecx, eax
xor esi, esi
cmp eax, 0x20
cmovae esi, ecx
xor ecx, esi
mov dword [ebp - 0x24], esi
cmp eax, 0x40
mov eax, esi
mov esi, dword [ebp - 0x30]
cmovae eax, ecx
neg ecx
mov dword [ebp - 0x40], ecx
mov ecx, edx
adc eax, 0
neg eax
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
adc eax, dword [ebp - 0xc]
and ecx, dword [ebp - 0x40]
and eax, dword [ebp - 0x24]
or ecx, eax
jne 0x435658
mov eax, dword [ebp + 0xc]
mov ecx, 1
sub ecx, dword [ebp - 0x60]
sub eax, edx
mov edx, dword [ebp - 0xc]
sbb edx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
call fcn.00436bb0
cmp edx, edi
ja 0x435655
jb 0x435525
cmp eax, ebx
jae 0x435655
cmp dword [ebp - 0x74], 0
je 0x435543
shld edx, eax, 1
add eax, eax
cmp edx, edi
ja 0x435655
jb 0x435543
cmp eax, ebx
jae 0x435655
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.00436bb0
mov ecx, dword [ebp - 0x60]
movq xmm1, qword [ebp - 0x68]
add ecx, 0x1f
movq xmm0, qword [ebp - 0x84]
mov dword [ebp - 0x40], eax
mov eax, edx
paddq xmm1, xmm0
test ecx, ecx
jle 0x43557b
movd xmm0, ecx
psrlq xmm1, xmm0
jmp 0x435585
neg ecx
movd xmm0, ecx
psllq xmm1, xmm0
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 4]
movq qword [ebp - 0xa8], xmm1
add ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x40], ecx
adc eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x1c]
call fcn.00436bb0
mov ecx, eax
mov eax, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x6c]
adc edx, ecx
cmp edx, edi
ja 0x4359a5
jb 0x4355d2
cmp dword [ebp - 0x10], ebx
jae 0x4359a5
cmp ecx, edi
jb 0x4355e4
ja 0x4356cb
cmp eax, ebx
jae 0x4356cb
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
cmp eax, ecx
jb 0x4357fb
ja 0x435602
cmp edi, ebx
jb 0x4357fb
cmp edi, ebx
jne 0x43562a
cmp eax, ecx
jne 0x43562a
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x9c], eax
jb 0x4357fb
ja 0x43562a
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x54]
jb 0x4357fb
mov eax, dword [ebp - 0x1c]
sub edi, eax
mov edx, dword [ebp - 4]
sbb dword [ebp - 0x14], edx
add eax, ebx
adc edx, ecx
cmp dword [ebp - 0x14], edx
jb 0x4359a5
ja 0x435e87
cmp edi, eax
jbe 0x4359a5
jmp 0x435e87
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
and eax, dword [ebp - 8]
and ecx, dword [ebp - 0x14]
or eax, ecx
jne 0x4356cb
mov eax, dword [ebp - 8]
mov ecx, 1
sub ecx, dword [ebp - 0x60]
sub eax, edx
mov edx, dword [ebp - 0x14]
sbb edx, dword [ebp - 4]
mov dword [ebp - 0x6c], ecx
call fcn.00436bb0
cmp edx, edi
jb 0x43568d
ja 0x4356cb
cmp eax, ebx
jae 0x4356cb
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
adc edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x6c]
call fcn.00436bb0
cmp edx, edi
jb 0x435956
ja 0x4359a5
cmp eax, ebx
jb 0x435956
jmp 0x4359a5
mov esi, dword [ebp - 0x7c]
cmp esi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
je 0x4358ce
mov edx, dword [ebp - 0x18]
mov ecx, edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
adc edx, ecx
mov ecx, dword [ebp - 4]
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
xor edx, edx
mov eax, dword [ebp - 0x1c]
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
adc dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
shld ecx, eax, 1
add eax, eax
add dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
adc ecx, edx
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x68], edx
xor edx, edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x64], edx
cmp ecx, 0x10000000
ja 0x4359a5
jb 0x43574a
test eax, eax
jae 0x4359a5
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x80]
mov ecx, edx
mov dword [ebp - 0x54], eax
shld ecx, eax, 2
mov dword [ebp - 0x80], 0
shl eax, 2
add dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
adc edx, ecx
mov ecx, dword [ebp - 0xc]
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x54], eax
xor edx, edx
mov eax, dword [ebp + 0xc]
shld ecx, eax, 2
shl eax, 2
add dword [ebp + 0xc], eax
mov eax, dword [ebp - 0xc]
adc eax, ecx
mov ecx, dword [ebp + 0xc]
shld eax, ecx, 1
add ecx, ecx
add dword [ebp - 0x24], ecx
mov ecx, edi
adc edx, eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x84], eax
mov eax, ebx
shld ecx, eax, 2
mov dword [ebp - 0xc], edx
shl eax, 2
add ebx, eax
adc edi, ecx
test edi, edi
jg 0x4357de
jl 0x4357c1
test ebx, ebx
jae 0x4357de
inc dword [ebp - 0x7c]
mov eax, 4
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
shrd ebx, edi, 3
shr edi, 3
add dword [ebp - 0x60], eax
jmp 0x434d8c
inc dword [ebp - 0x7c]
mov eax, 3
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
shrd ebx, edi, 2
shr edi, 2
add dword [ebp - 0x60], eax
jmp 0x434d8c
mov eax, dword [ebp - 0x1c]
sub ebx, eax
mov edx, dword [ebp - 4]
sbb ecx, edx
add eax, edi
adc edx, dword [ebp - 0x14]
cmp edx, ecx
ja 0x4359a5
jb 0x435956
cmp eax, ebx
jae 0x4359a5
jmp 0x435956
movq xmm1, qword [ebp - 0x94]
dec eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
movd xmm0, eax
mov eax, dword [ebp - 0x14]
psllq xmm1, xmm0
movq xmm0, qword [ebp - 0x2c]
psubq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
cmp ecx, eax
ja 0x435893
jb 0x435857
cmp ebx, edi
ja 0x435893
cmp ecx, dword [ebp - 0x6c]
ja 0x4359a5
jb 0x43586b
cmp ebx, dword [ebp - 0x70]
jae 0x4359a5
mov eax, dword [ebp - 4]
sub edi, edx
sbb dword [ebp - 0x14], eax
add edx, ebx
adc eax, ecx
cmp eax, dword [ebp - 0x14]
jb 0x435e87
ja 0x4359a5
cmp edx, edi
jb 0x435e87
jmp 0x4359a5
cmp eax, dword [ebp - 0x6c]
ja 0x4359a5
jb 0x4358a7
cmp edi, dword [ebp - 0x70]
jae 0x4359a5
mov eax, dword [ebp - 4]
sub ebx, edx
sbb ecx, eax
add edx, edi
adc eax, dword [ebp - 0x14]
cmp ecx, eax
ja 0x435956
jb 0x4359a5
cmp ebx, edx
ja 0x435956
jmp 0x4359a5
mov ebx, dword [ebp - 0x54]
xor edi, edi
sub edi, eax
xorps xmm0, xmm0
mov eax, 0x10000000
mov dword [ebp - 0x24], edi
sbb eax, ecx
movlpd qword [ebp - 0xb4], xmm0
mov dword [ebp - 0x60], eax
mov eax, ebx
or eax, dword [ebp - 0x80]
je 0x435912
add edi, 0xffffffff
mov dword [ebp - 0x24], edi
adc dword [ebp - 0x60], 0xffffffff
mov edi, dword [ebp - 0x20]
add edi, ebx
mov ebx, dword [ebp - 0x18]
adc ebx, dword [ebp - 0x80]
shrd edi, ebx, 0x1f
shr ebx, 0x1f
jmp 0x43591e
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov eax, dword [ebp - 4]
shld eax, edx, 1
add edx, edx
add edi, edx
mov edx, dword [ebp - 0x24]
adc ebx, eax
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x60], ecx
ja 0x435982
jb 0x43593c
cmp edx, eax
ja 0x435982
cmp dword [ebp - 0x60], ebx
jb 0x4359a5
ja 0x435947
cmp edx, edi
jbe 0x4359a5
sub eax, edx
sbb ecx, dword [ebp - 0x60]
cmp ecx, ebx
jb 0x4359a5
ja 0x435956
cmp eax, edi
jbe 0x4359a5
dec esi
cmp byte [esi], 0x39
jne 0x43596a
mov eax, dword [ebp - 0x5c]
nop
cmp esi, eax
je 0x435972
dec esi
cmp byte [esi], 0x39
je 0x435960
inc byte [esi]
inc esi
jmp 0x435ec5
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x5c]
inc ecx
mov byte [esi], 0x31
inc esi
jmp 0x435ecb
cmp ecx, ebx
jb 0x4359a5
ja 0x43598c
cmp eax, edi
jbe 0x4359a5
sub edx, eax
mov eax, dword [ebp - 0x60]
sbb eax, ecx
cmp eax, ebx
ja 0x435e87
jb 0x4359a5
cmp edx, edi
ja 0x435e87
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.00433ea0
mov edx, dword [ebp - 0x34]
mov ebx, eax
mov eax, dword [ebp - 0x88]
add esp, 0xc
mov esi, dword [ebp - 0x5c]
shr eax, 0x14
and eax, 0x7ff
mov dword [ebp - 0x48], ebx
sub eax, 0x3ff
mov dword [ebp - 0x30], esi
test edx, edx
je 0x4359ea
mov ecx, 1
sub ecx, edx
add eax, ecx
mov ecx, dword [ebp + 0xc]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x28], ecx
js 0x4359fb
xor edx, edx
jmp 0x435a04
mov edx, ecx
neg edx
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xc], edx
test eax, eax
js 0x435a1f
add ecx, eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], ecx
jmp 0x435a30
sub edx, eax
mov dword [ebp - 0x34], 0
neg eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x20], edx
xor edi, edi
mov dword [ebp - 8], eax
cmp dword [ebp - 0x78], eax
je 0x435a72
cmp dword [ebp - 0xa0], eax
je 0x435a51
mov eax, dword [ebp - 0x3c]
add eax, 0x433
jmp 0x435a59
mov eax, 0x36
sub eax, dword [ebp + 0xc]
add edx, eax
add ecx, eax
push 1
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x28], ecx
call fcn.00435f60
mov edx, dword [ebp - 0xc]
add esp, 4
mov edi, eax
cmp dword [ebp - 0x20], 0
jle 0x435a95
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x435a95
cmp dword [ebp - 0x20], eax
mov ecx, eax
cmovl ecx, dword [ebp - 0x20]
sub dword [ebp - 0x20], ecx
sub edx, ecx
sub eax, ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
test eax, eax
jle 0x435ad5
cmp dword [ebp - 0x78], 0
push eax
je 0x435ac7
push edi
call fcn.004363a0
mov edi, eax
push ebx
push edi
call fcn.00436150
push ebx
mov esi, eax
call fcn.00433e10
mov ebx, esi
add esp, 0x14
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x48], ebx
jmp 0x435ad5
push ebx
call fcn.004363a0
add esp, 8
mov dword [ebp - 0x48], eax
mov ebx, eax
push 1
call fcn.00435f60
mov ecx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp + 0xc], eax
test ecx, ecx
jle 0x435af6
push ecx
push eax
call fcn.004363a0
add esp, 8
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x74], 0
mov ecx, dword [ebp - 0x28]
je 0x435b06
inc dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x28], ecx
push ecx
push eax
call fcn.004341a0
mov edx, dword [ebp - 0xc]
add esp, 8
mov ecx, dword [ebp - 0x28]
add edx, eax
add dword [ebp - 0x20], eax
add ecx, eax
mov dword [ebp - 0x28], ecx
test edx, edx
jle 0x435b36
push edx
push ebx
call fcn.00436050
mov ecx, dword [ebp - 0x28]
mov ebx, eax
add esp, 8
mov dword [ebp - 0x48], ebx
test ecx, ecx
jle 0x435b4d
push ecx
push dword [ebp + 0xc]
call fcn.00436050
mov ecx, eax
add esp, 8
mov dword [ebp + 0xc], ecx
jmp 0x435b50
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
test eax, eax
jg 0x435b9c
mov edx, dword [ebp - 0x58]
cmp edx, 3
je 0x435b64
cmp edx, 5
jne 0x435b9c
test eax, eax
js 0x434596
push 0
push 5
push ecx
call fcn.00436280
push eax
push ebx
mov dword [ebp + 0xc], eax
call fcn.00433e40
add esp, 0x14
test eax, eax
jle 0x434596
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x38]
mov byte [eax], 0x31
lea esi, [eax + 1]
jmp 0x435e00
cmp dword [ebp - 0x78], 0
je 0x435d7d
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x435bb9
push eax
push edi
call fcn.00436050
add esp, 8
mov edi, eax
cmp dword [ebp - 0x74], 0
mov ebx, edi
mov dword [ebp - 8], ebx
je 0x435bf3
push dword [edi + 4]
call fcn.00433d70
mov ecx, dword [ebx + 0x10]
mov esi, eax
lea ecx, [ecx*4 + 8]
push ecx
lea ecx, [ebx + 0xc]
push ecx
lea ecx, [esi + 0xc]
push ecx
call fcn.00437b30
push 1
push esi
call fcn.00436050
add esp, 0x18
mov edi, eax
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x34], 1
nop dword [eax]
push dword [ebp + 0xc]
push dword [ebp - 0x48]
call fcn.00436470
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 8]
push eax
push dword [ebp - 0x48]
call fcn.00433e40
push edi
push dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
call fcn.00434010
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x6c], ecx
cmp dword [ecx + 0xc], 0
je 0x435c40
mov dword [ebp - 0xa0], 1
jmp 0x435c55
push ecx
push dword [ebp - 0x48]
call fcn.00433e40
mov ecx, dword [ebp - 0x6c]
add esp, 8
mov dword [ebp - 0xa0], eax
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x435c68
push ecx
call fcn.00432a30
add esp, 4
jmp 0x435c78
mov eax, dword [edx*4 + 0x480448]
mov dword [ecx], eax
mov dword [edx*4 + 0x480448], ecx
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x8c]
test ecx, ecx
jne 0x435c97
cmp dword [ebp - 0x58], 1
je 0x435c97
test dl, 1
je 0x435d19
mov eax, dword [ebp - 0x10]
test eax, eax
js 0x435d3a
jne 0x435cb3
cmp dword [ebp - 0x58], 1
je 0x435cb3
test dl, 1
je 0x435d3a
test ecx, ecx
jg 0x435d2c
mov eax, dword [ebp - 0x34]
mov byte [esi], bl
inc esi
cmp eax, dword [ebp - 0x44]
je 0x435dc5
push 0
push 0xa
push dword [ebp - 0x48]
call fcn.00436280
add esp, 0xc
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
push 0
push 0xa
cmp eax, edi
jne 0x435cf9
push edi
call fcn.00436280
mov edi, eax
add esp, 0xc
inc dword [ebp - 0x34]
mov dword [ebp - 8], edi
jmp 0x435c00
push eax
call fcn.00436280
push 0
push 0xa
push edi
mov dword [ebp - 8], eax
call fcn.00436280
add esp, 0x18
mov edi, eax
inc dword [ebp - 0x34]
jmp 0x435c00
cmp ebx, 0x39
je 0x435d77
cmp dword [ebp - 0x10], 0
jle 0x435d25
inc ebx
mov byte [esi], bl
jmp 0x435dff
cmp ebx, 0x39
je 0x435d77
inc bl
mov byte [esi], bl
jmp 0x435dff
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0x14], 0
jne 0x435d49
cmp dword [eax + 0x10], 1
jle 0x435d25
test ecx, ecx
jle 0x435d25
push 1
push eax
call fcn.00436050
push dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
push eax
call fcn.00433e40
add esp, 0x10
test eax, eax
jg 0x435d6f
jne 0x435d25
test bl, 1
je 0x435d25
mov eax, ebx
inc ebx
cmp eax, 0x39
jne 0x435d25
mov byte [esi], 0x39
inc esi
jmp 0x435dea
mov dword [ebp - 0x34], 1
push ecx
push ebx
call fcn.00436470
add esp, 8
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 0x48]
mov byte [esi], bl
inc esi
cmp dword [eax + 0x14], 0
jne 0x435da3
cmp dword [eax + 0x10], 1
jle 0x435e00
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x44]
jge 0x435dc8
push 0
push 0xa
push eax
call fcn.00436280
mov ecx, dword [ebp + 0xc]
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x48], ebx
inc dword [ebp - 0x34]
jmp 0x435d84
mov eax, dword [ebp - 0x48]
push 1
push eax
call fcn.00436050
push dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
push eax
call fcn.00433e40
add esp, 0x10
test eax, eax
jg 0x435dea
jne 0x435e00
test bl, 1
je 0x435e00
dec esi
cmp byte [esi], 0x39
jne 0x435dfd
mov eax, dword [ebp - 0x5c]
cmp esi, eax
je 0x435e1a
dec esi
cmp byte [esi], 0x39
je 0x435df3
inc byte [esi]
inc esi
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x435e32
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x435e22
push ecx
call fcn.00432a30
add esp, 4
jmp 0x435e32
inc dword [ebp - 0x38]
mov byte [esi], 0x31
jmp 0x435dff
mov eax, dword [edx*4 + 0x480448]
mov dword [ecx], eax
mov dword [edx*4 + 0x480448], ecx
test edi, edi
je 0x435e87
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x435e64
cmp ecx, edi
je 0x435e64
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x435e54
push ecx
call fcn.00432a30
add esp, 4
jmp 0x435e64
mov eax, dword [edx*4 + 0x480448]
mov dword [ecx], eax
mov dword [edx*4 + 0x480448], ecx
mov ecx, dword [edi + 4]
cmp ecx, 7
jle 0x435e77
push edi
call fcn.00432a30
add esp, 4
jmp 0x435e87
mov eax, dword [ecx*4 + 0x480448]
mov dword [edi], eax
mov dword [ecx*4 + 0x480448], edi
mov edx, dword [ebp - 0x5c]
cmp esi, edx
jbe 0x435e9b
nop
cmp byte [esi - 1], 0x30
jne 0x435e9b
dec esi
cmp esi, edx
ja 0x435e90
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x435ec8
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x435eb5
push ecx
call fcn.00432a30
add esp, 4
jmp 0x435ec5
mov eax, dword [edx*4 + 0x480448]
mov dword [ecx], eax
mov dword [edx*4 + 0x480448], ecx
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp + 0x18]
inc ecx
mov byte [esi], 0
mov dword [eax], ecx
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x435edd
mov dword [eax], esi
pop esi
pop edi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret