Function at 0x4447c0
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 0x4447ff
and ecx, 0x7fffffff
mov dword [eax], 1
mov dword [ebp - 0x88], ecx
movsd xmm0, qword [ebp - 0x8c]
jmp 0x444805
mov dword [eax], 0
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x444865
cmp dword [ebp - 0x8c], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x270f
jne 0x444849
test ecx, 0xfffff
jne 0x444849
push 8
push dword [ebp + 0x20]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push str.Infinity
call fcn.00446900
add esp, 0x14
mov esp, ebp
pop ebp
ret
push 3
push dword [ebp + 0x20]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push 0x46222c
call fcn.00446900
add esp, 0x14
mov esp, ebp
pop ebp
ret
ucomisd xmm0, qword [0x461a50]
lahf
test ah, 0x44
jp 0x444898
mov eax, dword [ebp + 0x18]
push 1
push dword [ebp + 0x20]
push dword [ebp + 0x28]
mov dword [eax], 1
push dword [ebp + 0x24]
push 0x462230
call fcn.00446900
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 0x4448e0
or edi, 0x80000000
mov dword [ebp - 0x34], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0xa0], 0
jmp 0x4449c8
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 0x444911
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 0x444935
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 0x444959
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 0x44497d
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 0x4449a1
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 0x4449be
jg 0x4449ab
test ebx, ebx
jb 0x4449be
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 + 0x470ad6]
lea ecx, [edx - 0x3fe]
mov eax, esi
mov dword [ebp + 0xc], 0
shl eax, 4
add eax, 0x46e0b0
mov dword [ebp - 0x10], 0
cmp ecx, dword [eax + 0xc]
jl 0x444a19
jne 0x444a1a
cmp dword [ebp + 0xc], 0
jb 0x444a19
ja 0x444a02
cmp edi, dword [eax]
jb 0x444a19
cmp edi, dword [eax]
jne 0x444a1a
cmp dword [ebp + 0xc], 0
jne 0x444a1a
cmp dword [ebp - 0x10], 0
ja 0x444a1a
jb 0x444a19
cmp ebx, dword [eax + 4]
jae 0x444a1a
dec esi
mov eax, dword [ebp + 0x10]
add esi, 0xfffffeaa
mov dword [ebp - 0x38], esi
test eax, eax
js 0x444a2f
cmp eax, 9
jle 0x444a31
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.0x444a55
jmp dword [eax*4 + 0x446498]
mov ecx, 0x12
mov dword [ebp - 0xac], 0
jmp 0x444ab9
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 0x444ab9
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 0x444ab9
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x444b59
push ecx
call fcn.00446bc0
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 0x444af0
cmp dword [ebp - 0x78], 0
je 0x444b23
cmp dword [ebp - 0x8c], 0
jne 0x444b23
mov eax, dword [ebp - 0x88]
test eax, 0xfffff
jne 0x444b23
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 0x444b74
cmp ecx, 3
je 0x444b3b
cmp ecx, 5
jne 0x444b74
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 0x4463b0
cmp dword [ebp + 0x28], ecx
ja 0x444ad6
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x444b6b
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 0x444d1e
cmp edx, 0xffffffe7
jl 0x444d69
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 + 0x471bb0]
add eax, 0x35
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], edi
cmp eax, 0x3d
jle 0x444c38
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 0x444d77
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 0x444c44
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 + 0x471ad8]
mov ecx, dword [ecx*8 + 0x471adc]
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.00447120
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 0x444cb9
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 0x444ccb
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 0x44577d
mov eax, 5
mov dword [ebp + 0xc], 0
xor edx, edx
call fcn.00447160
cmp edi, edx
ja 0x444f51
jb 0x444d03
cmp ebx, eax
ja 0x444f51
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 0x4463b0
test eax, eax
jne 0x444d4c
lea eax, [edx + ecx]
test eax, eax
js 0x444d4c
mov eax, dword [edx*8 + 0x471ad0]
mov edx, dword [edx*8 + 0x471ad4]
mov dword [ebp + 0xc], 0
call fcn.00447160
shrd ebx, edi, 0xb
shr edi, 0xb
jmp 0x444cf1
cmp edx, dword [0x46e0a8]
jg 0x444d69
add ecx, edx
js 0x444d69
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
jmp 0x4454c2
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
jmp 0x444d7a
mov edx, dword [ebp - 0x38]
cmp dword [ebp - 0x44], 0x1c
jg 0x445f55
mov eax, edx
mov ecx, 0x46f610
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.00447120
xor eax, eax
mov esi, edx
push eax
push dword [ebp - 0x64]
xor ebx, ebx
push eax
push dword [ebp + 0xc]
call fcn.00447120
add esi, eax
adc ebx, edx
xor eax, eax
push eax
push dword [ebp - 8]
push eax
push edi
call fcn.00447120
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.00447120
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.00447120
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.00447120
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 0x444e90
jg 0x444e6b
test ebx, ebx
jb 0x444e90
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 0x445275
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 0x444f6a
mov esi, dword [ebp - 0x50]
mov eax, edx
mov ecx, esi
and eax, 0x7ffffff
and ecx, 0xfffffffe
or ecx, eax
je 0x445f55
mov ecx, esi
mov eax, edx
not ecx
not eax
and ecx, 0xfffffffe
and eax, 0x7ffffff
or ecx, eax
je 0x445f55
xor edi, edi
mov dword [ebp + 0xc], edi
cmp edx, 0x50000000
ja 0x444f53
jb 0x444f38
test esi, esi
jae 0x444f53
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 0x4463b0
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 0x4463b0
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 0x44514e
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 0x445083
movq xmm1, qword [ebp - 0x94]
dec eax
movd xmm0, eax
psllq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
cmp edx, dword [ebp - 0xc]
ja 0x445031
jb 0x444fe5
cmp ecx, dword [ebp - 0x28]
ja 0x445031
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 0x445275
jb 0x445014
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x28]
ja 0x445275
cmp edx, dword [ebp - 0x6c]
jb 0x446437
ja 0x445157
cmp ecx, dword [ebp - 0x70]
jb 0x446437
jmp 0x445157
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 0x445275
ja 0x445060
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x40]
jbe 0x445275
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x6c]
jb 0x445f06
ja 0x445157
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x70]
jb 0x445f06
jmp 0x445157
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 0x445116
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 0x445116
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp + 0xc]
jb 0x4450f2
cmp ecx, eax
jae 0x445116
cmp dword [ebp - 0x74], 0
je 0x44520d
shld dword [ebp - 0x7c], ecx, 1
add ecx, ecx
cmp dword [ebp - 0x7c], ebx
jb 0x44520d
ja 0x445116
cmp ecx, eax
jb 0x44520d
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x40]
and eax, dword [ebp - 0x28]
and ecx, dword [ebp - 0xc]
or eax, ecx
jne 0x445157
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
neg ecx
mov edx, dword [ebp - 0xc]
call fcn.00447160
cmp edx, ebx
jb 0x4453e5
ja 0x445149
cmp eax, dword [ebp + 0xc]
jb 0x4453e5
mov edx, dword [ebp - 0x10]
jmp 0x445157
cmp dword [ebp - 0x20], eax
je 0x445414
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 0x445275
jb 0x445198
test eax, eax
jae 0x445275
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 0x4451e4
jl 0x4451d6
test ecx, ecx
jae 0x4451e4
shrd ecx, ebx, 3
mov eax, 4
shr ebx, 3
jmp 0x4451f0
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 0x444f80
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.00447160
cmp edx, ebx
ja 0x445275
jb 0x44523b
cmp eax, dword [ebp + 0xc]
jae 0x445275
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
cmp ebx, eax
ja 0x4453bf
jb 0x445254
cmp dword [ebp - 0x28], edi
jae 0x4453bf
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 0x445275
jb 0x445f06
cmp ecx, edi
jb 0x445f06
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 0x4452e8
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 0x445c6c
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 0x445a3f
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 0x445a57
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
sbb ebx, dword [ebp - 4]
cmp ebx, dword [ebp - 0x40]
jb 0x445275
ja 0x446437
cmp eax, dword [ebp - 0x6c]
jb 0x445275
jmp 0x446437
mov eax, dword [ebp - 0x28]
mov ecx, 1
sub ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xc]
call fcn.00447160
cmp edx, ebx
jb 0x445f06
ja 0x445275
cmp eax, dword [ebp + 0xc]
jb 0x445f06
jmp 0x445275
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 0x44547d
jb 0x44542f
cmp eax, ecx
jae 0x44547d
mov ebx, dword [ebp - 4]
cmp dword [ebp + 0xc], ebx
jb 0x44545d
mov eax, dword [ebp - 0x14]
ja 0x445441
cmp dword [ebp - 0x18], eax
jbe 0x44545d
sub ecx, eax
sbb edx, ebx
add eax, dword [ebp - 0x18]
adc ebx, dword [ebp + 0xc]
cmp edx, ebx
ja 0x445f06
jb 0x44545d
cmp ecx, eax
ja 0x445f06
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
add ecx, edx
js 0x445275
test edx, edx
js 0x445275
cmp edx, 0x1b
jle 0x4454c2
jmp 0x445275
mov ebx, dword [ebp - 4]
cmp edx, ebx
jb 0x4454ab
mov eax, dword [ebp - 0x14]
ja 0x44548d
cmp ecx, eax
jbe 0x4454ab
sub dword [ebp - 0x18], eax
sbb dword [ebp + 0xc], ebx
add eax, ecx
adc ebx, edx
cmp dword [ebp + 0xc], ebx
ja 0x446437
jb 0x4454ab
cmp dword [ebp - 0x18], eax
ja 0x446437
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
add ecx, edx
js 0x445275
cmp edx, 0x1b
ja 0x445275
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 0x445768
lea eax, [ecx + 1]
mov dword [ebp - 0x34], eax
mov eax, dword [edx*8 + 0x471ad0]
mov edx, dword [edx*8 + 0x471ad4]
call fcn.00447160
mov ecx, edx
mov dword [ebp - 0x18], eax
push ecx
push eax
push edi
push ebx
mov dword [ebp - 0xc], ecx
call fcn.00446eb0
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.00447120
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 0x446437
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
lea edx, [eax*8 + 0x471ad0]
mov dword [ebp - 0x7c], edx
nop word [eax + eax]
mov eax, dword [ebp - 0x44]
test eax, eax
jns 0x44561d
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 0x4455fc
mov ecx, dword [ebp + 0xc]
jb 0x4455ac
cmp dword [ebp - 0x10], ecx
ja 0x4455f9
cmp dword [ebp - 0x74], 0
je 0x4455db
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 0x445973
ja 0x4455d6
cmp dword [ebp - 0x6c], ecx
jbe 0x445973
mov eax, dword [ebp - 0x64]
jmp 0x4455f9
cmp dword [ebp - 0x58], edx
jb 0x445976
ja 0x4455ef
cmp dword [ebp - 0x10], ecx
jb 0x445976
test byte [ebp - 0x28], 1
jne 0x445976
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x445f06
ja 0x445615
cmp eax, dword [ebp + 0xc]
jb 0x445f06
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x7c]
jmp 0x445625
cmp ecx, eax
je 0x4456db
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 0x445679
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 0x445697
cmp ecx, dword [ebp - 0x38]
jg 0x445768
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x40]
call fcn.00447160
mov ecx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], ecx
push ecx
push eax
push edi
push ebx
call fcn.00446eb0
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.00447120
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x50], ebx
sbb edi, edx
or eax, edi
mov dword [ebp - 0x4c], edi
je 0x446437
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x7c]
jmp 0x445570
call fcn.00452184
sub eax, 0
je 0x446437
sub eax, 2
je 0x445f06
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 0x445f06
mov eax, dword [ebp - 0x18]
jb 0x445717
cmp edx, eax
ja 0x445f06
cmp edx, eax
jne 0x44572a
cmp dword [ebp - 0x10], ecx
jne 0x44572a
test byte [ebp - 0x28], 1
jne 0x445f06
cmp dword [ebp - 0x74], 0
je 0x446437
mov ecx, dword [ebp - 4]
cmp edi, ecx
ja 0x446437
mov eax, dword [ebp + 0xc]
jb 0x44574c
cmp ebx, eax
ja 0x446437
cmp dword [ebp - 0x10], ecx
ja 0x445f06
jb 0x446437
cmp edx, eax
jae 0x445f06
jmp 0x446437
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.00447160
sub ebx, eax
mov eax, ebx
sbb edi, edx
or eax, edi
je 0x446437
cmp dword [ebp - 0x44], 0
jge 0x445886
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 0x445866
mov ecx, dword [ebp + 0xc]
jb 0x445816
cmp dword [ebp - 0x34], ecx
ja 0x445866
cmp dword [ebp - 0x74], 0
je 0x445845
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 0x445973
ja 0x445840
cmp dword [ebp - 0x6c], ecx
jbe 0x445973
mov eax, dword [ebp - 0x64]
jmp 0x445866
cmp dword [ebp - 0x10], edx
jb 0x445976
ja 0x445859
cmp dword [ebp - 0x34], ecx
jb 0x445976
test byte [ebp - 0x8c], 1
jne 0x445976
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x445f06
mov edx, dword [ebp + 0xc]
ja 0x445889
cmp eax, edx
jb 0x445f06
jmp 0x445889
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 0x4459aa
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 0x445910
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.00447180
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 0x445927
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.00447160
sub ebx, eax
mov eax, ebx
sbb edi, edx
or eax, edi
jne 0x4457c3
jmp 0x446437
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
cmp ecx, edi
jb 0x445f06
ja 0x44598b
cmp eax, ebx
jb 0x445f06
cmp eax, ebx
jne 0x446437
cmp ecx, edi
jne 0x446437
test byte [ebp - 0x28], 1
jne 0x445f06
jmp 0x446437
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 0x4459ff
test byte [ebp - 0x8c], 1
jne 0x445f06
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 0x445f06
cmp dword [ebp - 0x74], 0
je 0x446437
mov eax, dword [ebp - 4]
cmp edi, eax
ja 0x446437
jb 0x445a1e
cmp ebx, edx
ja 0x446437
shld edi, ebx, 1
add ebx, ebx
cmp edi, eax
ja 0x445f06
jb 0x446437
cmp ebx, edx
jae 0x445f06
jmp 0x446437
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 0x445dd5
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 0x445c08
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.00447160
cmp edx, edi
ja 0x445c05
jb 0x445ad5
cmp eax, ebx
jae 0x445c05
cmp dword [ebp - 0x74], 0
je 0x445af3
shld edx, eax, 1
add eax, eax
cmp edx, edi
ja 0x445c05
jb 0x445af3
cmp eax, ebx
jae 0x445c05
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.00447160
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 0x445b2b
movd xmm0, ecx
psrlq xmm1, xmm0
jmp 0x445b35
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.00447160
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 0x445f55
jb 0x445b82
cmp dword [ebp - 0x10], ebx
jae 0x445f55
cmp ecx, edi
jb 0x445b94
ja 0x445c7b
cmp eax, ebx
jae 0x445c7b
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
cmp eax, ecx
jb 0x445dab
ja 0x445bb2
cmp edi, ebx
jb 0x445dab
cmp edi, ebx
jne 0x445bda
cmp eax, ecx
jne 0x445bda
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x9c], eax
jb 0x445dab
ja 0x445bda
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x54]
jb 0x445dab
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 0x445f55
ja 0x446437
cmp edi, eax
jbe 0x445f55
jmp 0x446437
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 0x445c7b
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.00447160
cmp edx, edi
jb 0x445c3d
ja 0x445c7b
cmp eax, ebx
jae 0x445c7b
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.00447160
cmp edx, edi
jb 0x445f06
ja 0x445f55
cmp eax, ebx
jb 0x445f06
jmp 0x445f55
mov esi, dword [ebp - 0x7c]
cmp esi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
je 0x445e7e
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 0x445f55
jb 0x445cfa
test eax, eax
jae 0x445f55
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 0x445d8e
jl 0x445d71
test ebx, ebx
jae 0x445d8e
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 0x44533c
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 0x44533c
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 0x445f55
jb 0x445f06
cmp eax, ebx
jae 0x445f55
jmp 0x445f06
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 0x445e43
jb 0x445e07
cmp ebx, edi
ja 0x445e43
cmp ecx, dword [ebp - 0x6c]
ja 0x445f55
jb 0x445e1b
cmp ebx, dword [ebp - 0x70]
jae 0x445f55
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 0x446437
ja 0x445f55
cmp edx, edi
jb 0x446437
jmp 0x445f55
cmp eax, dword [ebp - 0x6c]
ja 0x445f55
jb 0x445e57
cmp edi, dword [ebp - 0x70]
jae 0x445f55
mov eax, dword [ebp - 4]
sub ebx, edx
sbb ecx, eax
add edx, edi
adc eax, dword [ebp - 0x14]
cmp ecx, eax
ja 0x445f06
jb 0x445f55
cmp ebx, edx
ja 0x445f06
jmp 0x445f55
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 0x445ec2
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 0x445ece
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 0x445f32
jb 0x445eec
cmp edx, eax
ja 0x445f32
cmp dword [ebp - 0x60], ebx
jb 0x445f55
ja 0x445ef7
cmp edx, edi
jbe 0x445f55
sub eax, edx
sbb ecx, dword [ebp - 0x60]
cmp ecx, ebx
jb 0x445f55
ja 0x445f06
cmp eax, edi
jbe 0x445f55
dec esi
cmp byte [esi], 0x39
jne 0x445f1a
mov eax, dword [ebp - 0x5c]
nop
cmp esi, eax
je 0x445f22
dec esi
cmp byte [esi], 0x39
je 0x445f10
inc byte [esi]
inc esi
jmp 0x446475
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x5c]
inc ecx
mov byte [esi], 0x31
inc esi
jmp 0x44647b
cmp ecx, ebx
jb 0x445f55
ja 0x445f3c
cmp eax, edi
jbe 0x445f55
sub edx, eax
mov eax, dword [ebp - 0x60]
sbb eax, ecx
cmp eax, ebx
ja 0x446437
jb 0x445f55
cmp edx, edi
ja 0x446437
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.00444450
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 0x445f9a
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 0x445fab
xor edx, edx
jmp 0x445fb4
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 0x445fcf
add ecx, eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], ecx
jmp 0x445fe0
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 0x446022
cmp dword [ebp - 0xa0], eax
je 0x446001
mov eax, dword [ebp - 0x3c]
add eax, 0x433
jmp 0x446009
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.00446510
mov edx, dword [ebp - 0xc]
add esp, 4
mov edi, eax
cmp dword [ebp - 0x20], 0
jle 0x446045
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x446045
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 0x446085
cmp dword [ebp - 0x78], 0
push eax
je 0x446077
push edi
call fcn.00446950
mov edi, eax
push ebx
push edi
call fcn.00446700
push ebx
mov esi, eax
call fcn.004443c0
mov ebx, esi
add esp, 0x14
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x48], ebx
jmp 0x446085
push ebx
call fcn.00446950
add esp, 8
mov dword [ebp - 0x48], eax
mov ebx, eax
push 1
call fcn.00446510
mov ecx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp + 0xc], eax
test ecx, ecx
jle 0x4460a6
push ecx
push eax
call fcn.00446950
add esp, 8
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x74], 0
mov ecx, dword [ebp - 0x28]
je 0x4460b6
inc dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x28], ecx
push ecx
push eax
call fcn.00444750
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 0x4460e6
push edx
push ebx
call fcn.00446600
mov ecx, dword [ebp - 0x28]
mov ebx, eax
add esp, 8
mov dword [ebp - 0x48], ebx
test ecx, ecx
jle 0x4460fd
push ecx
push dword [ebp + 0xc]
call fcn.00446600
mov ecx, eax
add esp, 8
mov dword [ebp + 0xc], ecx
jmp 0x446100
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
test eax, eax
jg 0x44614c
mov edx, dword [ebp - 0x58]
cmp edx, 3
je 0x446114
cmp edx, 5
jne 0x44614c
test eax, eax
js 0x444b46
push 0
push 5
push ecx
call fcn.00446830
push eax
push ebx
mov dword [ebp + 0xc], eax
call fcn.004443f0
add esp, 0x14
test eax, eax
jle 0x444b46
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x38]
mov byte [eax], 0x31
lea esi, [eax + 1]
jmp 0x4463b0
cmp dword [ebp - 0x78], 0
je 0x44632d
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x446169
push eax
push edi
call fcn.00446600
add esp, 8
mov edi, eax
cmp dword [ebp - 0x74], 0
mov ebx, edi
mov dword [ebp - 8], ebx
je 0x4461a3
push dword [edi + 4]
call fcn.00444320
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.004480e0
push 1
push esi
call fcn.00446600
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.00446a20
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 8]
push eax
push dword [ebp - 0x48]
call fcn.004443f0
push edi
push dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
call fcn.004445c0
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x6c], ecx
cmp dword [ecx + 0xc], 0
je 0x4461f0
mov dword [ebp - 0xa0], 1
jmp 0x446205
push ecx
push dword [ebp - 0x48]
call fcn.004443f0
mov ecx, dword [ebp - 0x6c]
add esp, 8
mov dword [ebp - 0xa0], eax
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x446218
push ecx
call fcn.00442fe0
add esp, 4
jmp 0x446228
mov eax, dword [edx*4 + 0x475428]
mov dword [ecx], eax
mov dword [edx*4 + 0x475428], ecx
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x8c]
test ecx, ecx
jne 0x446247
cmp dword [ebp - 0x58], 1
je 0x446247
test dl, 1
je 0x4462c9
mov eax, dword [ebp - 0x10]
test eax, eax
js 0x4462ea
jne 0x446263
cmp dword [ebp - 0x58], 1
je 0x446263
test dl, 1
je 0x4462ea
test ecx, ecx
jg 0x4462dc
mov eax, dword [ebp - 0x34]
mov byte [esi], bl
inc esi
cmp eax, dword [ebp - 0x44]
je 0x446375
push 0
push 0xa
push dword [ebp - 0x48]
call fcn.00446830
add esp, 0xc
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
push 0
push 0xa
cmp eax, edi
jne 0x4462a9
push edi
call fcn.00446830
mov edi, eax
add esp, 0xc
inc dword [ebp - 0x34]
mov dword [ebp - 8], edi
jmp 0x4461b0
push eax
call fcn.00446830
push 0
push 0xa
push edi
mov dword [ebp - 8], eax
call fcn.00446830
add esp, 0x18
mov edi, eax
inc dword [ebp - 0x34]
jmp 0x4461b0
cmp ebx, 0x39
je 0x446327
cmp dword [ebp - 0x10], 0
jle 0x4462d5
inc ebx
mov byte [esi], bl
jmp 0x4463af
cmp ebx, 0x39
je 0x446327
inc bl
mov byte [esi], bl
jmp 0x4463af
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0x14], 0
jne 0x4462f9
cmp dword [eax + 0x10], 1
jle 0x4462d5
test ecx, ecx
jle 0x4462d5
push 1
push eax
call fcn.00446600
push dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
push eax
call fcn.004443f0
add esp, 0x10
test eax, eax
jg 0x44631f
jne 0x4462d5
test bl, 1
je 0x4462d5
mov eax, ebx
inc ebx
cmp eax, 0x39
jne 0x4462d5
mov byte [esi], 0x39
inc esi
jmp 0x44639a
mov dword [ebp - 0x34], 1
push ecx
push ebx
call fcn.00446a20
add esp, 8
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 0x48]
mov byte [esi], bl
inc esi
cmp dword [eax + 0x14], 0
jne 0x446353
cmp dword [eax + 0x10], 1
jle 0x4463b0
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x44]
jge 0x446378
push 0
push 0xa
push eax
call fcn.00446830
mov ecx, dword [ebp + 0xc]
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x48], ebx
inc dword [ebp - 0x34]
jmp 0x446334
mov eax, dword [ebp - 0x48]
push 1
push eax
call fcn.00446600
push dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
push eax
call fcn.004443f0
add esp, 0x10
test eax, eax
jg 0x44639a
jne 0x4463b0
test bl, 1
je 0x4463b0
dec esi
cmp byte [esi], 0x39
jne 0x4463ad
mov eax, dword [ebp - 0x5c]
cmp esi, eax
je 0x4463ca
dec esi
cmp byte [esi], 0x39
je 0x4463a3
inc byte [esi]
inc esi
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4463e2
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x4463d2
push ecx
call fcn.00442fe0
add esp, 4
jmp 0x4463e2
inc dword [ebp - 0x38]
mov byte [esi], 0x31
jmp 0x4463af
mov eax, dword [edx*4 + 0x475428]
mov dword [ecx], eax
mov dword [edx*4 + 0x475428], ecx
test edi, edi
je 0x446437
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x446414
cmp ecx, edi
je 0x446414
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x446404
push ecx
call fcn.00442fe0
add esp, 4
jmp 0x446414
mov eax, dword [edx*4 + 0x475428]
mov dword [ecx], eax
mov dword [edx*4 + 0x475428], ecx
mov ecx, dword [edi + 4]
cmp ecx, 7
jle 0x446427
push edi
call fcn.00442fe0
add esp, 4
jmp 0x446437
mov eax, dword [ecx*4 + 0x475428]
mov dword [edi], eax
mov dword [ecx*4 + 0x475428], edi
mov edx, dword [ebp - 0x5c]
cmp esi, edx
jbe 0x44644b
nop
cmp byte [esi - 1], 0x30
jne 0x44644b
dec esi
cmp esi, edx
ja 0x446440
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x446478
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x446465
push ecx
call fcn.00442fe0
add esp, 4
jmp 0x446475
mov eax, dword [edx*4 + 0x475428]
mov dword [ecx], eax
mov dword [edx*4 + 0x475428], 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 0x44648d
mov dword [eax], esi
pop esi
pop edi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret