Function at 0x434c80
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
movsd xmm0, qword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x5c], eax
movsd qword [ebp - 0xb0], xmm0
mov edx, dword [ebp - 0xac]
mov eax, edx
mov dword [ebp - 0x10], edx
push esi
push edi
mov edi, dword [ebp + 0x10]
and eax, 0x80000000
je 0x434cca
and edx, 0x7fffffff
mov dword [ebp - 0xac], edx
movsd xmm0, qword [ebp - 0xb0]
mov dword [ebp - 0x10], edx
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + 0x1c]
setne cl
mov dword [eax], ecx
mov eax, edx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x434d99
cmp dword [ebp - 0xb0], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x270f
jne 0x434d4a
test edx, 0xfffff
jne 0x434d4a
mov edx, dword [ebp + 0x24]
test edx, edx
jne 0x434d3d
push 8
call fcn.00437250
add esp, 4
mov edx, eax
mov esi, str.Infinity
mov byte [edx], 0x49
mov ecx, edx
sub esi, edx
mov al, byte [esi + ecx + 1]
inc ecx
mov byte [ecx], al
test al, al
jne 0x434d21
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x434d35
mov dword [eax], ecx
pop edi
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x28], 8
ja 0x434d15
xor edx, edx
lea ecx, [edx + 8]
jmp 0x434d2c
mov edx, dword [ebp + 0x24]
test edx, edx
jne 0x434d8c
push 3
call fcn.00437250
add esp, 4
mov edx, eax
mov esi, 0x468424
mov byte [edx], 0x4e
mov ecx, edx
sub esi, edx
nop dword [eax]
mov al, byte [esi + ecx + 1]
inc ecx
mov byte [ecx], al
test al, al
jne 0x434d70
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x434d35
pop edi
mov dword [eax], ecx
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x28], 3
ja 0x434d5d
xor edx, edx
lea ecx, [edx + 3]
jmp 0x434d7b
ucomisd xmm0, qword [0x467c48]
lahf
test ah, 0x44
jp 0x434dfd
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x24]
mov dword [eax], 1
test edx, edx
jne 0x434df0
push 1
call fcn.00437250
add esp, 4
mov edx, eax
mov esi, 0x468428
mov byte [edx], 0x30
mov ecx, edx
sub esi, edx
nop
mov al, byte [esi + ecx + 1]
inc ecx
mov byte [ecx], al
test al, al
jne 0x434dd0
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x434d35
pop edi
mov dword [eax], ecx
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x28], 1
ja 0x434dc3
xor edx, edx
lea ecx, [edx + 1]
jmp 0x434ddb
push ebx
mov ebx, dword [ebp - 0xb0]
mov esi, edx
and esi, 0xfffff
shr edx, 0x14
shld esi, ebx, 0xb
mov dword [ebp + 0xc], edx
shl ebx, 0xb
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x74], edx
test edx, edx
je 0x434e42
or esi, 0x80000000
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xb8], 0
jmp 0x434f32
lea eax, [edx + 1]
mov dword [ebp - 0xb8], 1
shld esi, ebx, 1
mov dword [ebp - 0x3c], eax
mov edi, edx
add ebx, ebx
mov dword [ebp - 0x18], esi
xor eax, eax
mov dword [ebp - 0x24], ebx
or eax, esi
jne 0x434e7b
mov esi, ebx
lea edi, [edx - 0x20]
mov edx, edi
mov dword [ebp - 0x18], esi
xor ebx, ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x74], edx
mov ecx, esi
xor eax, eax
and ecx, 0xffff0000
or eax, ecx
jne 0x434ea1
shld esi, ebx, 0x10
lea edx, [edi - 0x10]
shl ebx, 0x10
mov edi, edx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x74], edx
mov ecx, esi
xor eax, eax
and ecx, 0xff000000
or eax, ecx
jne 0x434ec7
shld esi, ebx, 8
lea edx, [edi - 8]
shl ebx, 8
mov edi, edx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x74], edx
mov ecx, esi
xor eax, eax
and ecx, 0xf0000000
or eax, ecx
jne 0x434eeb
shld esi, ebx, 4
lea edx, [edi - 4]
shl ebx, 4
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x74], edx
mov ecx, esi
xor eax, eax
and ecx, 0xc0000000
or eax, ecx
jne 0x434f0f
shld esi, ebx, 2
shl ebx, 2
sub edx, 2
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x74], edx
test esi, esi
jl 0x434f2c
jg 0x434f19
test ebx, ebx
jb 0x434f2c
shld esi, ebx, 1
add ebx, ebx
mov dword [ebp - 0x18], esi
dec edx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x74], edx
sub dword [ebp - 0x3c], edx
mov edi, dword [ebp + 0x10]
movsx ecx, word [edx*2 + 0x477ace]
lea eax, [edx - 0x3fe]
shl ecx, 4
add ecx, 0x4750b8
cmp eax, dword [ecx + 0xc]
jl 0x434f5b
jne 0x434f66
cmp esi, dword [ecx]
jb 0x434f5b
jne 0x434f66
cmp ebx, dword [ecx + 4]
jae 0x434f66
movsx ecx, word [edx*2 + 0x477ace]
dec ecx
jmp 0x434f6e
movsx ecx, word [edx*2 + 0x477ace]
add ecx, 0xfffffeaa
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x28], ecx
test edi, edi
js 0x434ffb
cmp edi, 9
jg 0x434ffb
cmp edi, 5
mov dword [ebp - 0xb4], 1
lea ebx, [edi - 4]
mov dword [ebp - 0x38], 0xffffffff
cmovle ebx, edi
mov edi, ebx
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x8c], edi
cmp edi, 5
ja case.default.0x434fb7
jmp dword [edi*4 + 0x436ae8]
mov dword [ebp - 0xb4], 0
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
mov eax, dword [ebp - 0x48]
cmovg eax, ecx
mov ecx, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x5c], ecx
jmp case.default.0x434fb7
mov dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0x5c]
inc eax
add eax, ecx
mov dword [ebp - 0x38], eax
test eax, eax
jg case.default.0x434fb7
mov eax, 1
jmp case.default.0x434fb7
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0x38], 0xffffffff
mov eax, 0x12
mov dword [ebp - 0x5c], 0
mov edi, dword [ebp + 0x24]
mov dword [ebp - 0x64], edi
test edi, edi
jne 0x4350c5
push eax
call fcn.00437250
mov edx, dword [ebp + 0xc]
mov edi, eax
add esp, 4
mov dword [ebp - 0x64], edi
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x90], ecx
cmp eax, 2
jl 0x43506c
cmp dword [ebp - 0xb4], ecx
je 0x435093
cmp dword [ebp - 0xb0], ecx
jne 0x435093
mov eax, dword [ebp - 0x10]
test eax, 0xfffff
jne 0x43508d
test eax, 0x7fe00000
cmovne ecx, dword [ebp - 0x48]
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x54], 0
jge 0x4350dc
cmp eax, 3
je 0x4350aa
cmp eax, 5
jne 0x4350dc
xor esi, esi
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x64]
not eax
mov dword [ebp - 0x28], eax
jmp 0x436a02
cmp dword [ebp + 0x28], eax
ja 0x43504b
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x4350d3
mov dword [ecx], eax
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x433
mov dword [ebp - 0x14], 1
sub ecx, edx
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x28]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], ecx
movlpd qword [ebp - 0xc0], xmm0
test edx, edx
jns 0x43527b
cmp edx, 0xffffffe7
jl 0x4352cb
mov ecx, dword [ebp - 0x28]
mov edx, ebx
not ecx
shrd edx, esi, 0xb
mov dword [ebp - 8], ecx
shr esi, 0xb
mov eax, dword [ecx*4 + 0x478bb0]
add eax, 0x35
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], esi
cmp eax, 0x3d
jle 0x4351a3
add eax, 0xffffffc3
xor ecx, ecx
bts ecx, eax
mov dword [ebp - 0x94], eax
xor edi, edi
cmp eax, 0x20
cmovae edi, ecx
xor ecx, edi
mov dword [ebp - 0x68], edi
cmp eax, 0x40
mov eax, edi
mov edi, dword [ebp - 0x84]
cmovae eax, ecx
add ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
adc eax, 0xffffffff
and ecx, edx
mov dword [ebp - 0x68], eax
and eax, esi
or ecx, eax
jne 0x4352d9
mov eax, dword [ebp - 0x94]
movq xmm1, qword [ebp - 0x44]
sub dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 8]
movd xmm0, eax
psrlq xmm1, xmm0
movq qword [ebp - 0x44], xmm1
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
jmp 0x4351af
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx*8 + 0x478ad8]
mov ecx, dword [ecx*8 + 0x478adc]
push esi
push edx
push ecx
push eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
call fcn.00437780
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], esi
test eax, eax
je 0x435227
movq xmm1, qword [ebp - 0xa0]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
movd xmm0, eax
psrlq xmm1, xmm0
mov dword [ebp - 0x20], ecx
movq qword [ebp - 0xa0], xmm1
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 4], ecx
mov dword [ebp + 0xc], eax
jmp 0x43523c
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x1c], ecx
jne 0x435d5f
mov eax, 5
mov dword [ebp + 0xc], 0
xor edx, edx
call fcn.00437830
cmp esi, edx
ja 0x4354a2
jb 0x435274
cmp ebx, eax
ja 0x4354a2
xor esi, esi
jmp 0x4350af
cmp dword [ebp - 0x38], 0
lea eax, [ecx + edx]
mov dword [ebp - 0x2c], eax
jne 0x4352ae
test eax, eax
js 0x4352ae
mov eax, dword [edx*8 + 0x478ad0]
mov edx, dword [edx*8 + 0x478ad4]
mov dword [ebp + 0xc], 0
call fcn.00437830
shrd ebx, esi, 0xb
shr esi, 0xb
jmp 0x435262
cmp edx, dword [0x4750b0]
jg 0x4352cb
test eax, eax
js 0x4352cb
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
jmp 0x435a94
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
jmp 0x4352dc
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0x1c
jg 0x43654a
shl edx, 4
mov ecx, 0x476618
sub ecx, edx
mov dword [ebp - 0x80], ecx
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [ebp - 0x34], eax
xor eax, eax
push eax
push ebx
push eax
push edi
call fcn.00437780
xor eax, eax
mov esi, edx
push eax
push dword [ebp - 0x24]
xor ebx, ebx
push eax
push dword [ebp - 0x34]
call fcn.00437780
add esi, eax
adc ebx, edx
xor eax, eax
push eax
push dword [ebp - 0x18]
push eax
push edi
call fcn.00437780
add eax, esi
mov edi, edx
adc edi, 0
xor eax, eax
push eax
push dword [ebp - 0x24]
xor esi, esi
push eax
mov eax, dword [ebp - 0x80]
push dword [eax]
call fcn.00437780
add edi, eax
adc esi, edx
add edi, ebx
mov ebx, dword [ebp - 0x18]
adc esi, 0
xor eax, eax
push eax
push ebx
push eax
push dword [ebp - 0x34]
call fcn.00437780
add eax, edi
mov dword [ebp - 8], edx
mov edi, edx
mov dword [ebp - 0x50], eax
adc edi, 0
xor eax, eax
push eax
push ebx
push eax
mov eax, dword [ebp - 0x80]
mov ebx, dword [eax]
push ebx
call fcn.00437780
add eax, edi
mov ecx, edx
adc ecx, 0
add eax, esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x78], eax
adc ecx, 0
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x80]
lea esi, [esi - 0x3fe]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0xc]
lea esi, [esi + eax]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x74], esi
lea eax, [eax - 0x36]
mov ecx, dword [ebp - 0x78]
lea eax, [eax + esi]
mov dword [ebp - 0x60], eax
mov edx, esi
mov dword [ebp - 0x4c], eax
js 0x4353f8
jg 0x4353c4
test ecx, ecx
jb 0x4353f8
mov eax, dword [ebp - 0x50]
lea edx, [esi - 1]
mov esi, edx
shld edi, eax, 1
mov dword [ebp - 0x74], esi
mov esi, dword [ebp - 0x7c]
add eax, eax
shld esi, ecx, 1
mov dword [ebp - 0x50], eax
and edi, 1
add ecx, ecx
xor eax, eax
or ecx, edi
or eax, esi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x40], eax
jmp 0x4353fb
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xc4], eax
cmp ecx, 0x13
jg 0x4356f8
movq xmm1, qword [ebp - 0x44]
mov eax, 4
sub eax, edx
xor esi, esi
mov edx, dword [ebp - 0x34]
shr edx, 3
movd xmm0, eax
xor eax, eax
shld eax, ebx, 0x1d
psrlq xmm1, xmm0
shl ebx, 0x1d
or esi, eax
or edx, ebx
movq qword [ebp - 0x44], xmm1
mov dword [ebp - 0x34], edx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], esi
test ecx, ecx
jne 0x4354bb
mov edi, dword [ebp - 0x44]
mov ecx, edi
mov edx, dword [ebp - 0x40]
and ecx, 0xfffffffe
mov eax, edx
and eax, 0x7ffffff
or ecx, eax
je 0x43654a
mov ecx, edi
mov eax, edx
not ecx
not eax
and ecx, 0xfffffffe
and eax, 0x7ffffff
or ecx, eax
je 0x43654a
xor esi, esi
mov dword [ebp + 0xc], esi
cmp edx, 0x50000000
ja 0x4354a4
jb 0x4350af
test edi, edi
jae 0x4354a4
jmp 0x4350af
xor esi, esi
mov eax, dword [ebp + 0xc]
inc dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x31
lea edi, [eax + 1]
jmp 0x436a02
mov ecx, dword [ebp - 0x60]
mov eax, ecx
mov ebx, dword [ebp - 0x40]
neg eax
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x2c], eax
lea eax, [ecx + 0x3f]
mov dword [ebp - 4], 1
mov dword [ebp - 0xa4], eax
lea eax, [ecx - 1]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x48]
sub eax, ecx
mov dword [ebp + 0xc], 0
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
nop dword [eax]
mov eax, ebx
mov dword [ebp - 0x30], ecx
shr eax, 0x1c
and ebx, 0xfffffff
add al, 0x30
mov dword [ebp - 0x44], ecx
mov byte [edi], al
inc edi
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x40], ebx
test eax, eax
jns 0x435858
xor eax, eax
sub eax, ecx
mov dword [ebp - 0xc], eax
mov eax, 0x10000000
sbb eax, ebx
cmp dword [ebp - 0x4c], 0
mov dword [ebp - 0x20], eax
jle 0x435610
movq xmm1, qword [ebp - 0xa0]
movd xmm0, dword [ebp - 0xa8]
psllq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
cmp ebx, eax
ja 0x4355b8
jb 0x435569
cmp ecx, dword [ebp - 0xc]
ja 0x4355b8
mov eax, dword [ebp - 4]
sub dword [ebp - 0xc], eax
mov edi, dword [ebp - 0x20]
sbb edi, dword [ebp + 0xc]
add eax, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
adc eax, ebx
cmp eax, edi
mov edi, dword [ebp - 0x84]
ja 0x4356f8
jb 0x43559b
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
ja 0x4356f8
cmp ebx, dword [ebp - 0x6c]
jb 0x436a89
ja 0x435861
cmp ecx, dword [ebp - 0x70]
jb 0x436a89
jmp 0x435861
mov eax, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 8], ecx
mov ecx, ebx
sbb ecx, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0xc]
adc eax, dword [ebp - 0x20]
cmp ecx, eax
jb 0x4356f8
ja 0x4355ed
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x84]
jbe 0x4356f8
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x6c]
jb 0x4364f3
ja 0x435861
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x70]
jb 0x4364f3
jmp 0x435861
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
bts ecx, eax
xor edi, edi
cmp eax, 0x20
cmovae edi, ecx
xor ecx, edi
mov dword [ebp - 8], edi
cmp eax, 0x40
mov eax, edi
mov edi, dword [ebp - 0x84]
cmovae eax, ecx
neg ecx
mov dword [ebp - 0x6c], ecx
adc eax, 0
and ecx, dword [ebp - 0x30]
neg eax
mov dword [ebp - 8], eax
and eax, ebx
or ecx, eax
jne 0x43569d
movq xmm1, qword [ebp - 0x44]
movd xmm0, dword [ebp - 0x58]
psllq xmm1, xmm0
movq qword [ebp - 0x88], xmm1
mov ecx, dword [ebp - 0x84]
cmp ecx, esi
ja 0x43569d
mov eax, dword [ebp - 0x88]
jb 0x435678
cmp eax, edx
jae 0x43569d
cmp dword [ebp - 0x90], 0
je 0x43594e
shld ecx, eax, 1
add eax, eax
cmp ecx, esi
jb 0x43594e
ja 0x43569d
cmp eax, edx
jb 0x43594e
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 8]
and eax, dword [ebp - 0xc]
and ecx, dword [ebp - 0x20]
or eax, ecx
jne 0x435861
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
call fcn.00437830
cmp edx, esi
jb 0x4356d4
mov edx, dword [ebp - 0x34]
ja 0x435861
cmp eax, edx
jae 0x435861
mov ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x20]
call fcn.00437830
cmp edx, esi
jb 0x4364f3
ja 0x4356f8
cmp eax, dword [ebp - 0x34]
jb 0x4364f3
mov eax, dword [ebp - 0x78]
mov ebx, 4
sub ebx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x7c]
mov ecx, ebx
mov edi, dword [ebp - 0x64]
call fcn.00437850
mov dword [ebp - 0x10], eax
mov ecx, edx
mov eax, dword [ebp - 0x50]
mov dword [ebp + 8], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp + 0xc], eax
test ebx, ebx
je 0x435765
movq xmm2, qword [ebp - 0xc8]
mov eax, 0x40
movq xmm1, qword [ebp + 8]
sub eax, ebx
movd xmm0, eax
psllq xmm2, xmm0
movd xmm0, ebx
psrlq xmm2, 0x20
psrlq xmm1, xmm0
por xmm2, xmm1
movq qword [ebp + 8], xmm2
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x80]
xor esi, esi
mov edx, dword [ebp - 0x60]
xorps xmm0, xmm0
movlpd qword [ebp - 0xc0], xmm0
mov dword [ebp - 0x34], 4
mov ebx, dword [eax]
mov eax, dword [eax + 4]
shr eax, 3
shld esi, ebx, 0x1d
mov dword [ebp - 0x30], 0
shl ebx, 0x1d
or ebx, eax
mov dword [ebp - 0x94], 1
lea eax, [edx + 0x1f]
mov dword [ebp - 0x7c], eax
lea eax, [edx + 0x3c]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x48]
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, 0xffffffe1
sub eax, edx
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 4], eax
mov dword [ebp + 0xc], edx
mov eax, ecx
mov dword [ebp - 0x9c], esi
shr eax, 0x1c
and ecx, 0xfffffff
add al, 0x30
mov dword [ebp - 0xa0], ebx
mov byte [edi], al
inc edi
cmp dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x40], ecx
jge 0x436243
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
sub dword [ebp - 0xc], eax
mov eax, 0x10000000
movlpd qword [ebp - 0xc8], xmm0
sbb eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x50]
or eax, dword [ebp - 0x18]
je 0x43601c
xor eax, eax
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x48]
sbb eax, dword [ebp - 0x18]
add dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x2c], eax
adc dword [ebp - 0x24], 0xffffffff
jmp 0x436031
cmp dword [ebp - 0x14], eax
je 0x4359dd
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov dword [ebp + 0xc], ecx
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 4], eax
mov eax, dword [ebp - 4]
adc dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 0xc]
shld ecx, eax, 1
add eax, eax
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], eax
cmp ecx, 0x10000000
ja 0x4356f8
jb 0x4358a2
test eax, eax
jae 0x4356f8
mov eax, dword [ebp - 0x30]
mov ecx, ebx
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
adc ebx, ecx
mov ecx, esi
shld ebx, eax, 1
add eax, eax
mov dword [ebp - 0x30], eax
mov eax, edx
shld ecx, eax, 2
shl eax, 2
add edx, eax
adc esi, ecx
test esi, esi
jg 0x435913
jl 0x4358d8
test edx, edx
jae 0x435913
add dword [ebp - 0x4c], 4
add dword [ebp - 0xa8], 4
add dword [ebp - 0xa4], 4
sub dword [ebp - 0x2c], 4
sub dword [ebp - 0x58], 4
mov ecx, dword [ebp - 0x30]
shrd edx, esi, 3
shr esi, 3
inc dword [ebp - 0x14]
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x34], edx
jmp 0x435500
add dword [ebp - 0x4c], 3
add dword [ebp - 0xa8], 3
add dword [ebp - 0xa4], 3
sub dword [ebp - 0x2c], 3
sub dword [ebp - 0x58], 3
mov ecx, dword [ebp - 0x30]
shrd edx, esi, 2
shr esi, 2
inc dword [ebp - 0x14]
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x34], edx
jmp 0x435500
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0xc]
adc ecx, ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0x6c], ecx
mov edx, ecx
mov ecx, dword [ebp - 0x58]
call fcn.00437830
cmp edx, esi
ja 0x4356f8
jb 0x43597c
cmp eax, dword [ebp - 0x34]
jae 0x4356f8
mov esi, dword [ebp - 0x20]
cmp esi, ebx
ja 0x4359b7
mov eax, dword [ebp - 0x30]
jb 0x43598d
cmp dword [ebp - 0xc], eax
jae 0x4359b7
mov ecx, dword [ebp - 4]
sub eax, ecx
mov edx, dword [ebp + 0xc]
sbb ebx, edx
add ecx, dword [ebp - 0xc]
adc edx, esi
cmp edx, ebx
ja 0x4356f8
jb 0x4364f3
cmp ecx, eax
jae 0x4356f8
jmp 0x4364f3
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 4]
sbb esi, dword [ebp + 0xc]
cmp esi, dword [ebp - 0x6c]
jb 0x4356f8
ja 0x436a89
cmp eax, dword [ebp - 8]
jb 0x4356f8
jmp 0x436a89
xor esi, esi
mov eax, 0x10000000
sub esi, ecx
sbb eax, ebx
mov dword [ebp - 0x2c], eax
cmp eax, ebx
ja 0x435a43
jb 0x4359f5
cmp esi, ecx
jae 0x435a43
mov edx, dword [ebp + 0xc]
cmp eax, edx
jb 0x435a20
mov eax, dword [ebp - 4]
ja 0x435a05
cmp esi, eax
jbe 0x435a20
sub ecx, eax
sbb ebx, edx
add eax, esi
adc edx, dword [ebp - 0x2c]
cmp ebx, edx
ja 0x4364f3
jb 0x435a20
cmp ecx, eax
ja 0x4364f3
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x2c], eax
js 0x4356f8
test edx, edx
js 0x4356f8
cmp edx, 0x1b
jle 0x435a91
jmp 0x4356f8
mov edx, dword [ebp + 0xc]
cmp ebx, edx
jb 0x435a6f
mov eax, dword [ebp - 4]
ja 0x435a53
cmp ecx, eax
jbe 0x435a6f
sub esi, eax
sbb dword [ebp - 0x2c], edx
add eax, ecx
adc edx, ebx
cmp dword [ebp - 0x2c], edx
ja 0x436a89
jb 0x435a6f
cmp esi, eax
ja 0x436a89
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x2c], eax
js 0x4356f8
test edx, edx
js 0x4356f8
cmp edx, 0x1b
jg 0x4356f8
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x24]
xor ecx, ecx
mov edi, dword [ebp - 0x64]
shrd ebx, esi, 0xb
mov dword [ebp + 0xc], 1
shr esi, 0xb
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x14], 1
test edx, edx
jle 0x435d47
mov ecx, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0xb8], eax
mov eax, dword [edx*8 + 0x478ad0]
mov edx, dword [edx*8 + 0x478ad4]
call fcn.00437830
mov ecx, edx
mov dword [ebp - 0x20], eax
push ecx
push eax
push esi
push ebx
mov dword [ebp - 0x4c], ecx
call fcn.004377c0
push dword [ebp - 0x4c]
mov edx, edi
mov dword [ebp - 0x18], eax
push dword [ebp - 0x20]
lea ecx, [eax + 0x30]
mov byte [edx], cl
lea edi, [edx + 1]
cdq
push edx
push eax
call fcn.00437780
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x44], ebx
sbb esi, edx
or eax, esi
mov dword [ebp - 0x40], esi
je 0x436a89
mov ecx, dword [ebp - 0x28]
mov eax, 1
mov dword [ebp - 0x14], eax
lea edx, [ecx*8 + 0x478ad0]
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jns 0x435bf5
mov eax, dword [ebp - 0x20]
mov edx, ebx
mov ecx, dword [ebp - 0x4c]
sub eax, ebx
mov dword [ebp - 0x5c], esi
sbb ecx, esi
mov dword [ebp - 0x48], eax
shld dword [ebp - 0x5c], edx, 1
mov dword [ebp - 0x58], ecx
add edx, edx
mov dword [ebp - 0x98], edx
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x5c], edx
ja 0x435bd4
mov ecx, dword [ebp + 0xc]
jb 0x435b76
cmp dword [ebp - 0x98], ecx
ja 0x435bd1
cmp dword [ebp - 0x90], 0
je 0x435bb0
mov eax, esi
mov edx, ebx
shld eax, edx, 2
shl edx, 2
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 4]
cmp eax, edx
ja 0x435ba7
jb 0x435b9b
cmp dword [ebp - 0x6c], ecx
ja 0x435ba7
mov eax, 1
test eax, eax
mov eax, dword [ebp - 0x48]
jmp 0x435bcb
xor eax, eax
test eax, eax
mov eax, dword [ebp - 0x48]
jmp 0x435bcb
cmp dword [ebp - 0x5c], edx
jb 0x435f57
ja 0x435bc7
cmp dword [ebp - 0x98], ecx
jb 0x435f57
test byte [ebp - 0x18], 1
jne 0x435f57
mov ecx, dword [ebp - 0x58]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x4364f3
ja 0x435bed
cmp eax, dword [ebp + 0xc]
jb 0x4364f3
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
jmp 0x435bfd
cmp eax, ecx
je 0x435cb7
mov ecx, dword [ebp - 0x2c]
inc eax
sub edx, 8
mov dword [ebp - 0x14], eax
dec ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0xb8], eax
jge 0x435c58
mov edx, dword [ebp + 0xc]
mov eax, ebx
mov ecx, esi
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov eax, edx
adc esi, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
shld ecx, eax, 2
shld esi, ebx, 1
shl eax, 2
add ebx, ebx
add edx, eax
mov eax, dword [ebp - 4]
adc eax, ecx
mov ecx, dword [ebp - 0x4c]
shld eax, edx, 1
add edx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp + 0xc], edx
jmp 0x435c73
cmp eax, dword [ebp - 0x28]
jg 0x435d47
mov eax, dword [edx]
mov edx, dword [edx + 4]
call fcn.00437830
mov ecx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x4c], ecx
push ecx
push eax
push esi
push ebx
call fcn.004377c0
push dword [ebp - 0x4c]
mov ecx, eax
push dword [ebp - 0x20]
mov al, cl
mov dword [ebp - 0x18], ecx
add al, 0x30
mov byte [edi], al
mov eax, ecx
cdq
inc edi
push edx
push eax
call fcn.00437780
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x44], ebx
sbb esi, edx
mov edx, dword [ebp - 8]
or eax, esi
mov dword [ebp - 0x40], esi
mov eax, dword [ebp - 0x14]
jne 0x435b34
jmp 0x436a89
call fcn.00441e64
sub eax, 0
je 0x436a89
sub eax, 2
je 0x4364f3
mov ecx, dword [ebp - 0x4c]
mov edx, ebx
mov eax, esi
shld eax, edx, 1
add edx, edx
mov dword [ebp - 8], eax
cmp eax, ecx
ja 0x4364f3
mov eax, dword [ebp - 0x20]
jb 0x435cf3
cmp edx, eax
ja 0x4364f3
cmp edx, eax
jne 0x435d06
cmp dword [ebp - 8], ecx
jne 0x435d06
test byte [ebp - 0x18], 1
jne 0x4364f3
cmp dword [ebp - 0x90], 0
je 0x436a89
mov ecx, dword [ebp - 4]
cmp esi, ecx
ja 0x436a89
mov eax, dword [ebp + 0xc]
jb 0x435d2b
cmp ebx, eax
ja 0x436a89
cmp dword [ebp - 8], ecx
ja 0x4364f3
jb 0x436a89
cmp edx, eax
jae 0x4364f3
jmp 0x436a89
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x8c], eax
movq xmm1, qword [ebp - 0x44]
movd xmm0, ecx
psrlq xmm1, xmm0
movq qword [ebp - 0xb0], xmm1
mov ecx, dword [ebp - 0xb0]
mov al, cl
mov edx, dword [ebp - 0xac]
add al, 0x30
mov byte [edi], al
inc edi
mov dword [ebp - 0x18], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
call fcn.00437830
sub ebx, eax
mov eax, ebx
sbb esi, edx
or eax, esi
je 0x436a89
mov eax, ebx
mov ecx, esi
shld ecx, eax, 1
add eax, eax
mov dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], eax
jge 0x435e6b
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 - 0x48], ecx
cmovae edx, eax
sub eax, ebx
mov dword [ebp - 0x48], eax
sbb edx, esi
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x5c], edx
ja 0x435e4d
mov ecx, dword [ebp + 0xc]
jb 0x435df5
cmp dword [ebp - 0x3c], ecx
ja 0x435e4d
cmp dword [ebp - 0x90], 0
je 0x435e2f
mov eax, esi
mov ecx, ebx
shld eax, ecx, 2
shl ecx, 2
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp + 0xc]
cmp eax, edx
ja 0x435e26
jb 0x435e1a
cmp dword [ebp - 0x6c], ecx
ja 0x435e26
mov eax, 1
test eax, eax
mov eax, dword [ebp - 0x48]
jmp 0x435e47
xor eax, eax
test eax, eax
mov eax, dword [ebp - 0x48]
jmp 0x435e47
cmp dword [ebp - 0x5c], edx
jb 0x435f57
ja 0x435e43
cmp dword [ebp - 0x3c], ecx
jb 0x435f57
test byte [ebp - 0x18], 1
jne 0x435f57
mov ecx, dword [ebp - 0x58]
shld ecx, eax, 1
add eax, eax
cmp ecx, edx
jb 0x4364f3
ja 0x435e71
cmp eax, dword [ebp + 0xc]
jb 0x4364f3
jmp 0x435e71
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
dec ecx
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ebp - 0x38]
je 0x435f8b
mov edx, dword [ebp + 0xc]
inc eax
mov dword [ebp - 0x14], eax
mov ecx, esi
mov eax, ebx
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov eax, edx
mov dword [ebp - 0x44], ebx
adc esi, ecx
mov ecx, dword [ebp - 4]
shld ecx, eax, 2
mov dword [ebp - 0x40], esi
shl eax, 2
add edx, eax
mov eax, dword [ebp - 4]
adc eax, ecx
cmp dword [ebp - 0x94], 0
mov ecx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp + 0xc], ecx
je 0x435f08
mov edx, dword [ebp - 0x10]
and edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x68]
mov eax, edx
and ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], ecx
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov dword [ebp - 0x8c], edx
mov eax, edx
adc dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x94]
call fcn.00437850
add eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
adc edx, dword [ebp - 0x6c]
mov dword [ebp - 4], edx
jmp 0x435f0e
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], eax
movq xmm1, qword [ebp - 0x44]
movd xmm0, dword [ebp - 0x1c]
psrlq xmm1, xmm0
movq qword [ebp - 0xb0], xmm1
mov ecx, dword [ebp - 0xb0]
mov al, cl
mov edx, dword [ebp - 0xac]
add al, 0x30
mov byte [edi], al
inc edi
mov dword [ebp - 0x18], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
call fcn.00437830
sub ebx, eax
mov eax, ebx
sbb esi, edx
or eax, esi
jne 0x435da2
jmp 0x436a89
mov ecx, dword [ebp - 0x58]
cmp ecx, esi
jb 0x4364f3
ja 0x435f6c
cmp eax, ebx
jb 0x4364f3
cmp eax, ebx
jne 0x436a89
cmp ecx, esi
jne 0x436a89
test byte [ebp - 0x18], 1
jne 0x4364f3
jmp 0x436a89
xor eax, eax
xor edx, edx
bts eax, ecx
cmp ecx, 0x20
cmovae edx, eax
xor eax, edx
mov dword [ebp - 0x10], edx
cmp ecx, 0x40
mov dword [ebp - 0x6c], eax
mov ecx, edx
mov edx, dword [ebp - 4]
cmovae ecx, eax
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov eax, dword [ebp - 0x10]
and ecx, ebx
and eax, esi
or ecx, eax
je 0x435fdd
test byte [ebp - 0x18], 1
jne 0x4364f3
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10]
add eax, 0xffffffff
adc ecx, 0xffffffff
and eax, ebx
and ecx, esi
or eax, ecx
jne 0x4364f3
cmp dword [ebp - 0x90], 0
je 0x436a89
cmp esi, edx
ja 0x436a89
mov eax, dword [ebp + 0xc]
jb 0x435fff
cmp ebx, eax
ja 0x436a89
cmp dword [ebp - 0x5c], edx
ja 0x4364f3
jb 0x436a89
cmp dword [ebp - 0x3c], eax
jae 0x4364f3
jmp 0x436a89
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jg 0x4363bf
mov eax, dword [ebp - 0x80]
xor edi, edi
bts edi, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, edi
xor edi, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], edi
cmp eax, 0x40
mov eax, edi
mov edi, edx
mov edx, dword [ebp + 0xc]
cmovae edi, eax
neg eax
mov dword [ebp - 8], eax
adc edi, 0
neg edi
mov dword [ebp - 0x10], edi
mov edi, edx
add edi, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 4]
adc edi, ecx
mov ecx, eax
and ecx, dword [ebp - 0x4c]
mov dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0x10]
and edi, dword [ebp - 0xa8]
or ecx, edi
mov edi, dword [ebp - 0x84]
jne 0x4361e7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x68]
sub eax, edx
mov dword [ebp - 0x20], eax
sbb ecx, dword [ebp - 4]
mov dword [ebp - 0x58], ecx
mov edx, ecx
mov ecx, dword [ebp - 0x14]
call fcn.00437830
cmp edx, esi
ja 0x4361e4
jb 0x4360ca
cmp eax, ebx
jae 0x4361e4
cmp dword [ebp - 0x90], 0
je 0x4360eb
shld edx, eax, 1
add eax, eax
cmp edx, esi
ja 0x4361e4
jb 0x4360eb
cmp eax, ebx
jae 0x4361e4
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x50]
movq xmm1, qword [ebp - 0x44]
movd xmm0, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
adc edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x7c]
psllq xmm1, xmm0
movq qword [ebp - 0x88], xmm1
test ecx, ecx
jle 0x43611b
call fcn.00437850
jmp 0x436123
mov ecx, dword [ebp - 0x78]
call fcn.00437830
mov ecx, dword [ebp - 0x88]
add ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x14]
adc eax, edx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
call fcn.00437830
mov ecx, eax
mov eax, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x10]
adc edx, ecx
cmp edx, esi
ja 0x43654a
jb 0x436169
cmp dword [ebp - 0x6c], ebx
jae 0x43654a
cmp ecx, esi
jb 0x43617b
ja 0x436258
cmp eax, ebx
jae 0x436258
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xc]
cmp ebx, eax
jb 0x436398
mov ecx, dword [ebp - 0x1c]
ja 0x436199
cmp edx, ecx
jb 0x436398
cmp edx, ecx
jne 0x4361be
cmp ebx, eax
jne 0x4361be
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x18]
jb 0x436398
ja 0x4361be
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x50]
jb 0x436398
sub edx, dword [ebp + 0xc]
sbb ebx, dword [ebp - 4]
cmp ebx, dword [ebp - 0xa8]
jb 0x43654a
ja 0x436a89
cmp edx, dword [ebp - 0x4c]
jbe 0x43654a
jmp 0x436a89
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
and eax, dword [ebp - 0xc]
and ecx, dword [ebp - 0x24]
or eax, ecx
jne 0x436258
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
sub eax, edx
mov edx, dword [ebp - 0x24]
sbb edx, dword [ebp - 4]
call fcn.00437830
cmp edx, esi
jb 0x436214
ja 0x436258
cmp eax, ebx
jae 0x436258
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
adc edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
call fcn.00437830
cmp edx, esi
jb 0x4364f3
ja 0x43654a
cmp eax, ebx
jb 0x4364f3
jmp 0x43654a
mov edi, dword [ebp - 0x94]
cmp edi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x84]
je 0x43646b
mov edx, dword [ebp - 0x30]
mov ecx, edx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
adc edx, ecx
mov ecx, dword [ebp - 4]
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], 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 dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
shld ecx, eax, 1
add eax, eax
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
adc ecx, edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x30], edx
cmp ecx, 0x10000000
ja 0x43654a
jb 0x4362d2
test eax, eax
jae 0x43654a
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x18]
mov ecx, edx
mov dword [ebp - 0x50], eax
shld ecx, eax, 2
mov dword [ebp - 0x18], 0
shl eax, 2
add dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
adc edx, ecx
mov ecx, dword [ebp - 0x68]
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x50], 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 - 0x68]
adc eax, ecx
mov ecx, dword [ebp - 0x1c]
shld eax, ecx, 1
add ecx, ecx
add dword [ebp - 0x10], ecx
mov ecx, esi
adc edx, eax
mov eax, ebx
shld ecx, eax, 2
mov dword [ebp - 0x68], edx
shl eax, 2
add ebx, eax
adc esi, ecx
test esi, esi
jg 0x43636c
jl 0x436340
test ebx, ebx
jae 0x43636c
add dword [ebp - 0x60], 4
add dword [ebp - 0x80], 4
add dword [ebp - 0x7c], 4
sub dword [ebp - 0x78], 4
sub dword [ebp - 0x14], 4
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x68]
shrd ebx, esi, 3
shr esi, 3
inc dword [ebp - 0x94]
jmp 0x4357d1
add dword [ebp - 0x60], 3
add dword [ebp - 0x80], 3
add dword [ebp - 0x7c], 3
sub dword [ebp - 0x78], 3
sub dword [ebp - 0x14], 3
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x68]
shrd ebx, esi, 2
shr esi, 2
inc dword [ebp - 0x94]
jmp 0x4357d1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
add eax, edx
adc ecx, ebx
cmp ecx, dword [ebp - 0x58]
ja 0x43654a
jb 0x4364f3
cmp eax, dword [ebp - 0x20]
jae 0x43654a
jmp 0x4364f3
movq xmm1, qword [ebp - 0xa0]
dec eax
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
movd xmm0, eax
mov eax, dword [ebp - 0x24]
psllq xmm1, xmm0
movq xmm0, qword [ebp - 0xc0]
psubq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
cmp ecx, eax
ja 0x436430
jb 0x4363f4
cmp ebx, esi
ja 0x436430
cmp ecx, dword [ebp - 0x6c]
ja 0x43654a
jb 0x436408
cmp ebx, dword [ebp - 0x70]
jae 0x43654a
mov eax, dword [ebp - 4]
sub esi, edx
sbb dword [ebp - 0x24], eax
add edx, ebx
adc eax, ecx
cmp eax, dword [ebp - 0x24]
jb 0x436a89
ja 0x43654a
cmp edx, esi
jb 0x436a89
jmp 0x43654a
cmp eax, dword [ebp - 0x6c]
ja 0x43654a
jb 0x436444
cmp esi, dword [ebp - 0x70]
jae 0x43654a
mov eax, dword [ebp - 4]
sub ebx, edx
sbb ecx, eax
add edx, esi
adc eax, dword [ebp - 0x24]
cmp ecx, eax
ja 0x4364f3
jb 0x43654a
cmp ebx, edx
ja 0x4364f3
jmp 0x43654a
mov ebx, dword [ebp - 0x50]
xor esi, esi
sub esi, eax
xorps xmm0, xmm0
mov eax, 0x10000000
mov dword [ebp - 0x10], esi
sbb eax, ecx
movlpd qword [ebp - 0x88], xmm0
mov dword [ebp + 0xc], eax
mov eax, ebx
or eax, dword [ebp - 0x18]
je 0x4364af
add esi, 0xffffffff
mov dword [ebp - 0x10], esi
adc dword [ebp + 0xc], 0xffffffff
mov esi, dword [ebp - 0x34]
add esi, ebx
mov ebx, dword [ebp - 0x30]
adc ebx, dword [ebp - 0x18]
shrd esi, ebx, 0x1f
shr ebx, 0x1f
jmp 0x4364bb
mov ebx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x88]
mov eax, dword [ebp - 4]
shld eax, edx, 1
add edx, edx
add esi, edx
mov edx, dword [ebp - 0x10]
adc ebx, eax
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + 0xc], ecx
ja 0x436527
jb 0x4364d9
cmp edx, eax
ja 0x436527
cmp dword [ebp + 0xc], ebx
jb 0x43654a
ja 0x4364e4
cmp edx, esi
jbe 0x43654a
sub eax, edx
sbb ecx, dword [ebp + 0xc]
cmp ecx, ebx
jb 0x43654a
ja 0x4364f3
cmp eax, esi
jbe 0x43654a
mov al, byte [edi - 1]
dec edi
cmp al, 0x39
jne 0x43650d
nop dword [eax + eax]
cmp edi, dword [ebp - 0x64]
je 0x436517
mov al, byte [edi - 1]
dec edi
cmp al, 0x39
je 0x436500
inc al
mov byte [edi], al
inc edi
jmp 0x436ac5
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x64]
inc eax
mov byte [edi], 0x31
inc edi
jmp 0x436acb
cmp ecx, ebx
jb 0x43654a
ja 0x436531
cmp eax, esi
jbe 0x43654a
sub edx, eax
mov eax, dword [ebp + 0xc]
sbb eax, ecx
cmp eax, ebx
ja 0x436a89
jb 0x43654a
cmp edx, esi
ja 0x436a89
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004349b0
mov ecx, dword [ebp - 0xac]
add esp, 0xc
mov edx, dword [ebp - 0x3c]
mov ebx, eax
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x48]
shr ecx, 0x14
and ecx, 0x7ff
mov dword [ebp - 0x54], ebx
sub ecx, 0x3ff
test edx, edx
je 0x43658e
mov eax, esi
sub eax, edx
add ecx, eax
mov eax, dword [ebp + 0xc]
sub eax, ecx
xor ecx, ecx
test eax, eax
lea edx, [eax - 1]
cmovle edx, ecx
sub esi, eax
test eax, eax
mov dword [ebp - 0x14], edx
cmovle ecx, esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x60], ecx
test esi, esi
js 0x4365c2
add edx, esi
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edx
jmp 0x4365d3
mov eax, esi
sub ecx, esi
neg eax
mov dword [ebp - 0x60], ecx
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x3c], ecx
xor esi, esi
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xb4], eax
je 0x436618
cmp dword [ebp - 0xb8], eax
je 0x4365f7
mov eax, dword [ebp - 0x74]
add eax, 0x433
jmp 0x4365ff
mov eax, 0x36
sub eax, dword [ebp + 0xc]
add ecx, eax
add edx, eax
push 1
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x14], edx
call fcn.00436b90
mov edx, dword [ebp - 0x14]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x3c]
test eax, eax
jle 0x436637
test edx, edx
jle 0x436637
cmp eax, edx
mov ecx, edx
cmovl ecx, eax
sub dword [ebp - 0x60], ecx
sub eax, ecx
sub edx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 8]
test eax, eax
jle 0x4366a3
cmp dword [ebp - 0xb4], 0
push eax
je 0x436695
push esi
call fcn.00436fe0
mov esi, eax
push ebx
push esi
call fcn.00436db0
add esp, 0x10
mov edx, eax
mov dword [ebp + 0xc], edx
test ebx, ebx
je 0x43668e
mov ecx, dword [ebx + 4]
cmp ecx, 7
jle 0x43667e
push ebx
call fcn.004335f0
mov edx, dword [ebp + 0xc]
add esp, 4
mov ebx, edx
mov dword [ebp - 0x54], ebx
jmp 0x4366a3
mov eax, dword [ecx*4 + 0x47c4c0]
mov dword [ebx], eax
mov dword [ecx*4 + 0x47c4c0], ebx
mov ebx, edx
mov dword [ebp - 0x54], ebx
jmp 0x4366a3
push ebx
call fcn.00436fe0
add esp, 8
mov dword [ebp - 0x54], eax
mov ebx, eax
push 1
call fcn.00436b90
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0xc], ecx
test eax, eax
jle 0x4366c8
push eax
push ecx
call fcn.00436fe0
add esp, 8
mov dword [ebp + 0xc], eax
mov ecx, eax
cmp dword [ebp - 0x90], 0
je 0x4366d7
inc dword [ebp - 0x60]
inc dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
push dword [ecx + eax*4 + 0x10]
call fcn.00436b00
mov edx, dword [ebp - 0x14]
add eax, 0xfffffffc
mov ecx, eax
add esp, 4
sub ecx, edx
test edx, edx
cmovle ecx, eax
mov eax, dword [ebp - 0x60]
and ecx, 0x1f
add dword [ebp - 0x3c], ecx
add eax, ecx
add edx, ecx
mov dword [ebp - 0x14], edx
test eax, eax
jle 0x43671b
push eax
push ebx
call fcn.00436cb0
mov edx, dword [ebp - 0x14]
mov ebx, eax
add esp, 8
mov dword [ebp - 0x54], ebx
test edx, edx
jle 0x436732
push edx
push dword [ebp + 0xc]
call fcn.00436cb0
mov ecx, eax
add esp, 8
mov dword [ebp + 0xc], ecx
jmp 0x436735
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x38]
test eax, eax
jg 0x436784
mov edx, dword [ebp - 0x8c]
cmp edx, 3
je 0x43674c
cmp edx, 5
jne 0x436784
test eax, eax
js 0x4350b5
push 0
push 5
push ecx
call fcn.00436f00
push eax
push ebx
mov dword [ebp + 0xc], eax
call fcn.00434950
add esp, 0x14
test eax, eax
jle 0x4350b5
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x28]
mov byte [eax], 0x31
lea edi, [eax + 1]
jmp 0x436a02
cmp dword [ebp - 0xb4], 0
je 0x436973
mov eax, dword [ebp - 0x3c]
test eax, eax
jle 0x4367a4
push eax
push esi
call fcn.00436cb0
add esp, 8
mov esi, eax
cmp dword [ebp - 0x90], 0
mov dword [ebp - 0xc], esi
je 0x4367e2
push dword [esi + 4]
call fcn.004348b0
mov esi, eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
lea ecx, [eax + 0xc]
push ecx
lea ecx, [esi + 0xc]
push ecx
call fcn.00438610
push 1
push esi
call fcn.00436cb0
add esp, 0x18
mov esi, eax
mov dword [ebp - 8], 1
nop dword [eax]
push dword [ebp + 0xc]
push ebx
call fcn.004370b0
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 0xc]
push eax
push dword [ebp - 0x54]
call fcn.00434950
push esi
push dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
call fcn.00434b20
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x6c], ecx
cmp dword [ecx + 0xc], 0
je 0x43682e
mov dword [ebp - 0xb8], 1
jmp 0x436843
push ecx
push dword [ebp - 0x54]
call fcn.00434950
mov ecx, dword [ebp - 0x6c]
add esp, 8
mov dword [ebp - 0xb8], eax
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x436856
push ecx
call fcn.004335f0
add esp, 4
jmp 0x436866
mov eax, dword [edx*4 + 0x47c4c0]
mov dword [ecx], eax
mov dword [edx*4 + 0x47c4c0], ecx
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb0]
test ecx, ecx
jne 0x436888
cmp dword [ebp - 0x98], 1
je 0x436888
test dl, 1
je 0x43690f
mov eax, dword [ebp - 0x10]
test eax, eax
js 0x436930
jne 0x4368a7
cmp dword [ebp - 0x98], 1
je 0x4368a7
test dl, 1
je 0x436930
test ecx, ecx
jg 0x436922
mov eax, dword [ebp - 8]
mov byte [edi], bl
inc edi
cmp eax, dword [ebp - 0x38]
je 0x4369c1
push 0
push 0xa
push dword [ebp - 0x54]
call fcn.00436f00
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x54], ebx
push 0
push 0xa
cmp eax, esi
jne 0x4368ef
push esi
call fcn.00436f00
mov esi, eax
add esp, 0xc
inc dword [ebp - 8]
mov dword [ebp - 0xc], esi
jmp 0x4367f0
push eax
call fcn.00436f00
push 0
push 0xa
push esi
mov dword [ebp - 0xc], eax
call fcn.00436f00
add esp, 0x18
mov esi, eax
inc dword [ebp - 8]
jmp 0x4367f0
cmp ebx, 0x39
je 0x43696d
cmp dword [ebp - 0x10], 0
jle 0x43691b
inc ebx
mov byte [edi], bl
jmp 0x436a01
cmp ebx, 0x39
je 0x43696d
inc bl
mov byte [edi], bl
jmp 0x436a01
mov eax, dword [ebp - 0x54]
cmp dword [eax + 0x14], 0
jne 0x43693f
cmp dword [eax + 0x10], 1
jle 0x43691b
test ecx, ecx
jle 0x43691b
push 1
push eax
call fcn.00436cb0
push dword [ebp + 0xc]
mov dword [ebp - 0x54], eax
push eax
call fcn.00434950
add esp, 0x10
test eax, eax
jg 0x436965
jne 0x43691b
test bl, 1
je 0x43691b
mov eax, ebx
inc ebx
cmp eax, 0x39
jne 0x43691b
mov byte [edi], 0x39
inc edi
jmp 0x4369e6
mov dword [ebp - 8], 1
nop word [eax + eax]
push ecx
push ebx
call fcn.004370b0
add esp, 8
lea ebx, [eax + 0x30]
mov eax, dword [ebp - 0x54]
mov byte [edi], bl
inc edi
cmp dword [eax + 0x14], 0
jne 0x43699f
cmp dword [eax + 0x10], 1
jle 0x436a02
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x38]
jge 0x4369c4
push 0
push 0xa
push eax
call fcn.00436f00
mov ecx, dword [ebp + 0xc]
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x54], ebx
inc dword [ebp - 8]
jmp 0x436980
mov eax, dword [ebp - 0x54]
push 1
push eax
call fcn.00436cb0
push dword [ebp + 0xc]
mov dword [ebp - 0x54], eax
push eax
call fcn.00434950
add esp, 0x10
test eax, eax
jg 0x4369e6
jne 0x436a02
test bl, 1
je 0x436a02
mov al, byte [edi - 1]
dec edi
cmp al, 0x39
jne 0x4369fd
nop
cmp edi, dword [ebp - 0x64]
je 0x436a1c
mov al, byte [edi - 1]
dec edi
cmp al, 0x39
je 0x4369f0
inc al
mov byte [edi], al
inc edi
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x436a34
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x436a24
push ecx
call fcn.004335f0
add esp, 4
jmp 0x436a34
inc dword [ebp - 0x28]
mov byte [edi], 0x31
jmp 0x436a01
mov eax, dword [edx*4 + 0x47c4c0]
mov dword [ecx], eax
mov dword [edx*4 + 0x47c4c0], ecx
test esi, esi
je 0x436a89
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x436a66
cmp ecx, esi
je 0x436a66
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x436a56
push ecx
call fcn.004335f0
add esp, 4
jmp 0x436a66
mov eax, dword [edx*4 + 0x47c4c0]
mov dword [ecx], eax
mov dword [edx*4 + 0x47c4c0], ecx
mov ecx, dword [esi + 4]
cmp ecx, 7
jle 0x436a79
push esi
call fcn.004335f0
add esp, 4
jmp 0x436a89
mov eax, dword [ecx*4 + 0x47c4c0]
mov dword [esi], eax
mov dword [ecx*4 + 0x47c4c0], esi
mov edx, dword [ebp - 0x64]
cmp edi, edx
jbe 0x436a9b
cmp byte [edi - 1], 0x30
jne 0x436a9b
dec edi
cmp edi, edx
ja 0x436a90
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x436ac8
mov edx, dword [ecx + 4]
cmp edx, 7
jle 0x436ab5
push ecx
call fcn.004335f0
add esp, 4
jmp 0x436ac5
mov eax, dword [edx*4 + 0x47c4c0]
mov dword [ecx], eax
mov dword [edx*4 + 0x47c4c0], ecx
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + 1]
mov byte [edi], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x436adf
mov dword [eax], edi
pop ebx
pop edi
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret