Function at 0x4573a0
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
push ebx
push esi
push edi
mov eax, dword [0xae4064]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0xdc], esi
test esi, esi
je 0x411ed3
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 1
xorps xmm0, xmm0
movlpd qword [ebp - 0x54], xmm0
cmp eax, 0xffffffff
jne 0x411ef0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x9c]
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x411f18
mov byte [ebp - 4], 2
test esi, esi
je 0x411f02
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
xor ecx, ecx
xor edx, edx
or eax, 0xffffffff
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp + 0x10], ecx
jbe 0x412117
mov edi, dword [ebp - 0x50]
xorps xmm1, xmm1
mov dword [ebp - 0x18], edi
movaps xmm2, xmm1
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x411f4d
mov edi, edx
mov dword [ebp - 0x2c], edx
jmp 0x411f56
mov esi, dword [ebp + 0xc]
mov edi, dword [esi + edx*4]
mov dword [ebp - 0x2c], edi
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x174]
mov edx, dword [ebp - 0x14]
cmp dword [esi + edi*4], 0xffffffff
mov esi, dword [ebp + 0x18]
je 0x4120e1
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x174]
mov ecx, dword [ebp - 0x34]
mov edx, dword [esi + edi*4]
cmp edx, eax
jne 0x411f86
cmp edi, ecx
jae 0x411f92
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x170]
mov ecx, dword [eax + edx*4]
mov eax, edi
sub eax, ecx
inc eax
cmp ecx, edi
ja 0x411ff8
cmp eax, 4
jb 0x411ff8
and eax, 3
mov edx, edi
mov edi, dword [ebp + 8]
sub edx, eax
mov dword [ebp - 0x58], edx
lea eax, [ecx + 3]
mov edx, ecx
shl eax, 4
shl edx, 4
add eax, dword [edi + 0x98]
nop
mov edi, dword [ebp + 8]
lea edx, [edx + 0x40]
add ecx, 4
lea eax, [eax + 0x40]
mov esi, dword [edi + 0x98]
mov edi, dword [ebp - 0x2c]
movq xmm0, qword [edx + esi - 0x40]
movhpd xmm0, qword [edx + esi - 0x30]
paddq xmm1, xmm0
movq xmm0, qword [eax - 0x50]
movhpd xmm0, qword [eax - 0x40]
paddq xmm2, xmm0
cmp ecx, dword [ebp - 0x58]
jbe 0x411fc0
xorps xmm0, xmm0
movlpd qword [ebp - 0x64], xmm0
movlpd qword [ebp - 0x54], xmm0
cmp ecx, edi
ja 0x4120c9
mov eax, edi
sub eax, ecx
inc eax
cmp eax, 2
jb 0x412082
mov esi, dword [ebp - 0x50]
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x54]
dec eax
mov edx, ecx
shr eax, 1
shl edx, 4
inc eax
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x64]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x34], eax
jmp 0x412044
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x98]
add esi, dword [edx + edi]
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0x1c]
adc esi, dword [edx + edi + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x30]
add esi, dword [edx + edi + 0x10]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x20]
adc esi, dword [edx + edi + 0x14]
lea edx, [edx + 0x20]
sub dword [ebp - 0x34], 1
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x20], esi
jne 0x412041
mov edx, dword [ebp - 0x1c]
jmp 0x412097
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], eax
cmp ecx, edi
ja 0x4120ba
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x24]
shl ecx, 4
mov eax, dword [eax + 0x98]
add esi, dword [ecx + eax]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x18]
adc esi, dword [ecx + eax + 4]
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x20]
add dword [ebp - 0x24], eax
adc dword [ebp - 0x18], edx
mov esi, dword [ebp + 8]
lea ecx, [edi + 1]
mov dword [ebp - 0x34], ecx
mov edx, dword [esi + 0x174]
mov esi, dword [ebp + 0x18]
mov eax, dword [edx + edi*4]
mov edx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp + 0x10]
jb 0x411f40
mov edi, dword [ebp - 0x24]
paddq xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddq xmm1, xmm0
movd ecx, xmm1
psrldq xmm1, 4
movd eax, xmm1
add edi, ecx
mov ecx, dword [ebp - 0x18]
adc ecx, eax
jmp 0x41211d
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x54]
mov eax, dword [esi]
push ecx
push edi
push esi
call dword [eax + 0xc]
mov edi, eax
test edi, edi
je 0x41214b
mov ecx, dword [esi]
push esi
mov byte [ebp - 4], 3
call dword [ecx + 8]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x30
call fcn.00a0841c
add esp, 4
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x41216b
mov ecx, eax
call fcn.0041d520
mov edi, eax
jmp 0x41216d
xor edi, edi
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 1
mov dword [ebp - 0x50], edi
test edi, edi
je 0x412181
mov eax, dword [edi]
push edi
call dword [eax + 4]
push 0
push esi
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.0041d580
push 1
lea ecx, [ebp - 0xc8]
call fcn.00410390
mov dword [ebp - 0x28], 0
mov eax, dword [esi]
lea ecx, [ebp - 0x28]
push ecx
push 0xaa0f80
push esi
mov byte [ebp - 4], 7
call dword [eax]
push 0x38
call fcn.00a0841c
mov esi, eax
add esp, 4
mov dword [ebp - 0x34], esi
test esi, esi
je 0x4121eb
mov dword [esi + 4], 0
mov dword [esi], vtable.NArchive::N7z::CFolderOutStream.0
mov dword [esi + 8], 0
mov word [esi + 0xc], 0x100
mov dword [esi + 0x30], 0
jmp 0x4121f0
xor esi, esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x60], esi
test esi, esi
je 0x412203
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp + 8]
add eax, 0x40
mov byte [ebp - 4], 8
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x412226
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
cmp dword [ebp + 0x14], 0
mov dword [esi + 0x30], eax
setne al
mov dword [ebp - 0x24], 0
mov byte [esi + 0xc], al
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1a0], 0
setne al
mov byte [esi + 0xd], al
nop dword [eax]
mov ecx, edi
call fcn.0041d6e0
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x41230d
mov byte [ebp - 4], 9
test esi, esi
je 0x412270
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x412281
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0xb
test ecx, ecx
je 0x412292
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0xc
test edi, edi
je 0x4122e5
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x4122f6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp + 0x10]
jb 0x4123c7
mov byte [ebp - 4], 0x3b
test esi, esi
je 0x412327
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x3c
test eax, eax
je 0x412338
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x3d
test ecx, ecx
je 0x412349
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x3e
test edi, edi
je 0x41239c
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x3f
test eax, eax
je 0x411f02
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebp - 0xcc], 0xffffffff
xorps xmm0, xmm0
movlpd qword [ebp - 0x6c], xmm0
movlpd qword [ebp - 0x5c], xmm0
jne 0x4123e4
mov edx, eax
mov dword [ebp - 0x2c], eax
jmp 0x4123ed
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x174]
mov ecx, dword [eax + edx*4]
mov eax, 1
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], eax
cmp ecx, 0xffffffff
je 0x4124ec
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
mov edx, dword [eax + 0x48]
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp - 0x20]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, dword [ecx + edi*4]
mov edi, dword [edx + eax*8]
sub edi, dword [edx + ecx*8]
mov eax, dword [edx + eax*8 + 4]
sbb eax, dword [edx + ecx*8 + 4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], eax
inc edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x58], edi
mov edi, dword [ebp - 0x30]
mov eax, dword [eax + 0x170]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp + 0x10]
jae 0x41249d
nop dword [eax]
cmp dword [ebp - 0xd0], 0xffffffff
jne 0x41246d
mov ecx, eax
jmp 0x412473
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x20]
mov edi, dword [eax + 0x174]
mov eax, dword [ebp - 0x18]
cmp dword [edi + ecx*4], esi
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
jne 0x41249d
cmp ecx, edx
jb 0x41249d
inc eax
lea edx, [ecx + 1]
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp + 0x10]
jb 0x412460
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
cmp ecx, edx
jae 0x4124dc
mov edi, dword [ebp + 8]
shl ecx, 4
add ecx, dword [edi + 0x98]
sub edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
nop dword [eax]
mov eax, dword [ebp - 0x6c]
add eax, dword [ecx]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x68]
adc eax, dword [ecx + 4]
lea ecx, [ecx + 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x18]
sub edx, 1
jne 0x4124c0
mov edx, dword [ebp - 0x2c]
cmp dword [ebp - 0xd4], 0xffffffff
jne 0x4124fa
xor ecx, ecx
jmp 0x412506
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], ecx
jmp 0x4124df
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x24]
lea ecx, [edi + ecx*4]
mov edi, dword [ebp - 0x30]
mov dword [esi + 0x20], ecx
mov ecx, esi
mov dword [esi + 0x28], edx
mov dword [esi + 0x24], eax
mov byte [esi + 0xe], 0
mov byte [esi + 0x34], 0
call fcn.00412e90
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x4125dd
mov byte [ebp - 4], 0xe
test esi, esi
je 0x412540
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x412551
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x10
test ecx, ecx
je 0x412562
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x11
test edi, edi
je 0x4125b5
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x4125c6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [esi + 0x24], 0
je 0x41293c
cmp dword [ebp - 0x20], 0xffffffff
jne 0x41269e
mov byte [ebp - 4], 0x13
test esi, esi
je 0x4125ff
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x412610
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x15
test ecx, ecx
je 0x412621
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x16
test edi, edi
je 0x412674
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x17
test eax, eax
je 0x412685
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x18
test eax, eax
je 0x4126be
mov ecx, dword [eax]
lea edx, [ebp - 0x1c]
push edx
push 0xaa0f00
push eax
call dword [ecx]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x19
mov byte [ebp - 0x42], 0
mov byte [ebp - 0x41], 0
call fcn.0040a170
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
mov byte [ebp + 0x17], 0
push dword [ecx + 0x2c]
push dword [ecx + 0x28]
push dword [ecx + 0x10]
push 1
push eax
lea eax, [ebp - 0x41]
push eax
lea eax, [ebp - 0x42]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp + 0x17]
push eax
push 0
push edi
push esi
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x20]
lea eax, [ecx + 0x40]
push eax
push dword [ecx + 0x154]
push dword [ecx + 0x150]
push dword [ecx + 0x38]
lea ecx, [ebp - 0xc8]
call fcn.00410d50
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, 1
je 0x412959
cmp ecx, 0x80004001
je 0x412959
mov dl, byte [ebp + 0x17]
test dl, dl
jne 0x41295c
test ecx, ecx
je 0x412841
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x412778
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x28
test eax, eax
je 0x412792
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x29
test esi, esi
je 0x4127a0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x2a
test eax, eax
je 0x4127b1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x2b
test ecx, ecx
je 0x4127c2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x2c
test edi, edi
je 0x412815
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x2d
test eax, eax
je 0x4125c6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 2
mov ecx, esi
call fcn.00412cb0
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4128fa
test ecx, ecx
je 0x41287c
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x2e
test eax, eax
je 0x412896
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x2f
test esi, esi
je 0x4128a4
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x30
test eax, eax
je 0x4128b5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xc8]
call fcn.00411db0
mov byte [ebp - 4], 0x31
test edi, edi
je 0x4128ce
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x32
test eax, eax
je 0x4125c6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
test ecx, ecx
je 0x41291e
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x412938
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x6c]
add dword [edi + 0x28], eax
mov eax, dword [ebp - 0x68]
adc dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x58]
add dword [edi + 0x20], eax
mov eax, dword [ebp - 0x4c]
adc dword [edi + 0x24], eax
jmp 0x412250
mov dl, byte [ebp + 0x17]
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x48], eax
mov eax, 2
mov dword [ebp - 0x14], eax
cmp ecx, 1
je 0x412991
cmp ecx, 0x80004001
jne 0x41297e
mov eax, 1
jmp 0x41298e
cmp dword [ebp - 0x48], 0
jne 0x412991
test dl, dl
mov ecx, 6
cmovne eax, ecx
mov dword [ebp - 0x14], eax
push eax
mov ecx, esi
call fcn.00412cb0
mov dword [ebp - 0x18], eax
test eax, eax
je 0x412a90
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x4129cb
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x4129e5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x1c
test esi, esi
je 0x4129f3
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x1d
test eax, eax
je 0x412a04
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x1e
test ecx, ecx
je 0x412a15
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x1f
test edi, edi
je 0x412a68
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x20
test eax, eax
je 0x412a79
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebp - 0x48], 0
jne 0x412bae
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x412bae
push dword [ebp - 0x14]
mov ecx, dword [eax]
push dword [ebp - 0x20]
push 2
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x412bae
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x412ae5
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x21
test eax, eax
je 0x412aff
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x22
test esi, esi
je 0x412b0d
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x23
test eax, eax
je 0x412b1e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x24
test ecx, ecx
je 0x412b2f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x84]
call fcn.00a08466
push dword [ebp - 0x90]
call fcn.00a08466
push dword [ebp - 0x9c]
call fcn.00a08466
push dword [ebp - 0xac]
call fcn.00a08466
push dword [ebp - 0xb8]
call fcn.00a08466
push dword [ebp - 0xc4]
call fcn.00a08466
add esp, 0x18
mov byte [ebp - 4], 0x25
test edi, edi
je 0x412b82
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x26
test eax, eax
je 0x4125c6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x412bd5
mov eax, dword [ebp - 0x38]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00a5b4a0
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [ebp - 0x3c], 0
push ecx
call fcn.00a08466
add esp, 4
mov byte [ebp - 4], 0x27
jmp 0x41292b
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xa9c09b
mov eax, dword fs:[0]
push eax
sub esp, 0x62c
mov eax, dword [0xae4064]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x440]
call fcn.00432f50
mov dword [ebp - 4], 0
push fcn.00a6053b
lea ecx, [ebp - 0x62c]
push ecx
lea ecx, [ebp - 0x440]
call fcn.0045a940
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x630]
push eax
lea ecx, [ebp - 0x440]
call fcn.0045c200
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x634]
push edx
lea ecx, [ebp - 0x440]
call fcn.0045a940
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x638]
push ecx
call fcn.004396e0
add esp, 0x14
xor edx, edx
mov word [ebp - 0x220], dx
push 0x206
push 0
lea eax, [ebp - 0x21e]
push eax
call fcn.00a5b4a0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x428], cx
push 0x206
push 0
lea edx, [ebp - 0x426]
push edx
call fcn.00a5b4a0
add esp, 0xc
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x448], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x4d0], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x4b8], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x4b8], xmm0
jmp 0x4574c4
movsd xmm0, qword [ebp - 0x4b8]
addsd xmm0, qword [0xaa13e0]
movsd qword [ebp - 0x4b8], xmm0
movsd xmm0, qword [0xaa1708]
comisd xmm0, xmmword [ebp - 0x4b8]
jbe 0x457575
movsd xmm0, qword [0xaa1578]
mulsd xmm0, qword [ebp - 0x4b8]
mulsd xmm0, qword [ebp - 0x4b8]
movsd xmm1, qword [ebp - 0x4b8]
mulsd xmm1, qword [ebp - 0x4b8]
subsd xmm0, xmm1
movsd xmm1, qword [0xaa1400]
mulsd xmm1, qword [ebp - 0x4b8]
mulsd xmm1, qword [ebp - 0x4b8]
addsd xmm1, qword [0xaa1498]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x4d0]
movsd qword [ebp - 0x4d0], xmm0
movsd xmm0, qword [ebp - 0x4d0]
comisd xmm0, xmmword [0xaa14c8]
jbe 0x457570
movsd xmm0, qword [0xaa13a0]
mulsd xmm0, qword [ebp - 0x4b8]
movsd xmm1, qword [ebp - 0x4d0]
subsd xmm1, xmm0
movsd qword [ebp - 0x4d0], xmm1
jmp 0x4574ac
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x4d0]
jbe 0x4575a1
push 0x79
xor esp, dword [edx + 0x2f]
jb 0x4575df
and byte [0x68785125], dh
and ah, byte [edx + 0x2b]
jo 0x4575ed
or dword [eax], esi
or byte [edi], ch
or dh, byte [esi]
jmp 0x4582d3
mov dword [ebp - 0x444], 0x457596
mov dword [ebp - 0x448], 0x457582
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x490], eax
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x528], ecx
mov byte [ebp - 0x462], 0x18
mov dword [ebp - 0x458], 0
jmp 0x4575ef
jnp 0x411e7a
mov edx, dword [ebp - 0x458]
add edx, 1
mov dword [ebp - 0x458], edx
inc dword [ebx - 0x6a76fe3e]
test al, 0xfb
invalid
cmp dword [ebp - 0x458], 0x100
jae 0x457610
mov eax, dword [ebp - 0x458]
mov cl, byte [ebp - 0x458]
mov byte [ebp + eax - 0x628], cl
jmp 0x4575e0
mov dword [ebp - 0x4a4], 0
mov byte [ebp - 0x44c], 0
mov dword [ebp - 0x458], 0xff
jmp 0x45763c
mov edx, dword [ebp - 0x458]
sub edx, 1
mov dword [ebp - 0x458], edx
cmp dword [ebp - 0x458], 0
jbe 0x4578ac
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4e8], 1
mov eax, dword [ebp - 0x4e8]
cmp eax, dword [ebp - 0x458]
jae 0x45767d
mov ecx, dword [ebp - 0x4e8]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x4e8], edx
jmp 0x45765d
mov eax, dword [ebp - 0x4a4]
mov dword [ebp - 0x508], eax
cmp dword [ebp - 0x508], 3
ja case.default.0x45769c
mov ecx, dword [ebp - 0x508]
jmp dword [ecx*4 + 0x4586a0]
movzx edx, byte [ebp - 0x44c]
movzx ebx, byte [ebp + edx - 0x628]
movsd xmm0, qword [ebp - 0x4d0]
call fcn.00a08ca1
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x44c], bl
jmp 0x457785
movzx eax, byte [ebp - 0x44c]
movzx ebx, byte [ebp + eax - 0x628]
movsd xmm0, qword [ebp - 0x4d0]
call fcn.00a08ca1
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x44c], bl
jmp 0x457785
movzx ecx, byte [ebp - 0x44c]
movzx ebx, byte [ebp + ecx - 0x628]
movsd xmm0, qword [ebp - 0x4d0]
call fcn.00a08ca1
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x44c], bl
jmp 0x457785
movzx edx, byte [ebp - 0x44c]
movzx ebx, byte [ebp + edx - 0x628]
movsd xmm0, qword [ebp - 0x4d0]
call fcn.00a08ca1
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x44c], bl
jmp 0x457785
movzx eax, byte [ebp - 0x44c]
movzx ecx, byte [ebp + eax - 0x628]
mov edx, dword [ebp - 0x528]
add edx, dword [ebp - 0x4a4]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x44c], cl
mov ecx, dword [ebp - 0x4a4]
add ecx, 1
mov dword [ebp - 0x4a4], ecx
movzx edx, byte [ebp - 0x462]
cmp dword [ebp - 0x4a4], edx
jb 0x4577c3
mov dword [ebp - 0x4a4], 0
movzx eax, byte [ebp - 0x462]
movzx ecx, byte [ebp - 0x44c]
add ecx, eax
mov byte [ebp - 0x44c], cl
movzx edx, byte [ebp - 0x44c]
and edx, dword [ebp - 0x4e8]
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x4f0]
add eax, 1
mov dword [ebp - 0x4f0], eax
cmp dword [ebp - 0x4f0], 0xb
jbe 0x457802
mov eax, dword [ebp - 0x46c]
xor edx, edx
div dword [ebp - 0x458]
mov dword [ebp - 0x46c], edx
mov ecx, dword [ebp - 0x46c]
cmp ecx, dword [ebp - 0x458]
ja 0x45767d
mov edx, dword [ebp - 0x458]
cmp edx, dword [ebp - 0x46c]
je 0x4578a7
mov eax, dword [ebp - 0x46c]
movzx ecx, byte [ebp + eax - 0x628]
mov edx, dword [ebp - 0x458]
movzx eax, byte [ebp + edx - 0x628]
xor eax, ecx
mov ecx, dword [ebp - 0x458]
mov byte [ebp + ecx - 0x628], al
mov edx, dword [ebp - 0x458]
movzx eax, byte [ebp + edx - 0x628]
mov ecx, dword [ebp - 0x46c]
movzx edx, byte [ebp + ecx - 0x628]
xor edx, eax
mov eax, dword [ebp - 0x46c]
mov byte [ebp + eax - 0x628], dl
mov ecx, dword [ebp - 0x46c]
movzx edx, byte [ebp + ecx - 0x628]
mov eax, dword [ebp - 0x458]
movzx ecx, byte [ebp + eax - 0x628]
xor ecx, edx
mov edx, dword [ebp - 0x458]
mov byte [ebp + edx - 0x628], cl
jmp 0x45762d
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x628]
mov byte [ebp - 0x449], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x628]
mov byte [ebp - 0x44a], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x628]
mov byte [ebp - 0x44f], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x628]
mov byte [ebp - 0x44b], cl
movzx edx, byte [ebp - 0x44c]
mov al, byte [ebp + edx - 0x628]
mov byte [ebp - 0x44d], al
mov dword [ebp - 0x50c], 6
cmp dword [ebp - 0x50c], 2
jle 0x458282
mov ecx, dword [ebp - 0x50c]
and ecx, 1
jne 0x458282
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x4a8], 0
mov edx, dword [ebp - 0x4a8]
add edx, 1
mov dword [ebp - 0x4a8], edx
mov dword [ebp - 0x4ac], 0
mov eax, dword [ebp - 0x45c]
shl eax, 1
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x474], 0
mov ecx, dword [ebp - 0x490]
add ecx, dword [ebp - 0x4ac]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x474]
mov dword [ebp - 0x474], edx
mov dword [ebp - 0x478], 0
mov eax, dword [ebp - 0x478]
add eax, 8
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x494], 0
mov ecx, dword [ebp - 0x45c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x47c], 0
mov eax, dword [ebp - 0x490]
add eax, dword [ebp - 0x494]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x47c]
mov dword [ebp - 0x47c], ecx
mov dword [ebp - 0x480], 0
mov edx, dword [ebp - 0x480]
add edx, 0x2f
mov dword [ebp - 0x480], edx
mov dword [ebp - 0x484], 0
mov eax, dword [ebp - 0x474]
sub eax, dword [ebp - 0x478]
add eax, dword [ebp - 0x484]
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x488], 0
mov ecx, dword [ebp - 0x47c]
sub ecx, dword [ebp - 0x480]
add ecx, dword [ebp - 0x488]
mov dword [ebp - 0x488], ecx
mov dword [ebp - 0x498], 0
mov edx, dword [ebp - 0x484]
shl edx, 4
mov dword [ebp - 0x498], edx
mov dword [ebp - 0x49c], 0
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x4a0], 0
mov ecx, dword [ebp - 0x498]
or ecx, dword [ebp - 0x49c]
mov dword [ebp - 0x4a0], ecx
mov byte [ebp - 0x450], 0
mov dl, byte [ebp - 0x4a0]
mov byte [ebp - 0x450], dl
mov byte [ebp - 0x44e], 0
movzx eax, byte [ebp - 0x44d]
mov cl, byte [ebp + eax - 0x628]
mov byte [ebp - 0x44e], cl
movzx edx, byte [ebp - 0x449]
movzx eax, byte [ebp + edx - 0x628]
movzx ecx, byte [ebp - 0x44a]
add ecx, eax
mov byte [ebp - 0x44a], cl
mov dl, byte [ebp - 0x449]
add dl, 1
mov byte [ebp - 0x449], dl
movzx eax, byte [ebp - 0x44a]
movzx ecx, byte [ebp - 0x44d]
mov dl, byte [ebp + eax - 0x628]
mov byte [ebp + ecx - 0x628], dl
movzx eax, byte [ebp - 0x44b]
movzx ecx, byte [ebp - 0x44a]
mov dl, byte [ebp + eax - 0x628]
mov byte [ebp + ecx - 0x628], dl
movzx eax, byte [ebp - 0x449]
movzx ecx, byte [ebp - 0x44b]
mov dl, byte [ebp + eax - 0x628]
mov byte [ebp + ecx - 0x628], dl
movzx eax, byte [ebp - 0x449]
mov cl, byte [ebp - 0x44e]
mov byte [ebp + eax - 0x628], cl
movzx edx, byte [ebp - 0x44e]
movzx eax, byte [ebp + edx - 0x628]
movzx ecx, byte [ebp - 0x44f]
add ecx, eax
mov byte [ebp - 0x44f], cl
movzx edx, byte [ebp - 0x450]
movzx eax, byte [ebp - 0x44a]
movzx ecx, byte [ebp + eax - 0x628]
movzx eax, byte [ebp - 0x449]
movzx eax, byte [ebp + eax - 0x628]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x628]
xor edx, ecx
movzx eax, byte [ebp - 0x44b]
movzx ecx, byte [ebp + eax - 0x628]
movzx eax, byte [ebp - 0x44d]
movzx eax, byte [ebp + eax - 0x628]
add ecx, eax
movzx eax, byte [ebp - 0x44f]
movzx eax, byte [ebp + eax - 0x628]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x628]
movzx eax, byte [ebp + ecx - 0x628]
xor edx, eax
mov byte [ebp - 0x44b], dl
mov cl, byte [ebp - 0x450]
mov byte [ebp - 0x44d], cl
mov dl, byte [ebp - 0x44b]
mov byte [ebp - 0x451], dl
cmp dword [ebp - 0x45c], 0
jle 0x457c35
movsx ax, byte [ebp - 0x451]
mov ecx, dword [ebp - 0x45c]
mov word [ebp + ecx*2 - 0x1a], ax
mov edx, dword [ebp - 0x45c]
add edx, 1
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x4a8]
add eax, 1
mov dword [ebp - 0x4a8], eax
mov ecx, dword [ebp - 0x45c]
shl ecx, 1
mov dword [ebp - 0x4ac], ecx
mov edx, dword [ebp - 0x490]
add edx, dword [ebp - 0x4ac]
movzx eax, byte [edx]
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x478], 8
mov ecx, dword [ebp - 0x45c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x490]
add eax, dword [ebp - 0x494]
movzx ecx, byte [eax]
mov dword [ebp - 0x47c], ecx
mov dword [ebp - 0x480], 0x2f
mov edx, dword [ebp - 0x474]
sub edx, dword [ebp - 0x478]
mov dword [ebp - 0x484], edx
mov eax, dword [ebp - 0x47c]
sub eax, dword [ebp - 0x480]
mov dword [ebp - 0x488], eax
mov ecx, dword [ebp - 0x484]
shl ecx, 4
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x488]
mov dword [ebp - 0x49c], edx
mov eax, dword [ebp - 0x498]
or eax, dword [ebp - 0x49c]
mov dword [ebp - 0x4a0], eax
mov cl, byte [ebp - 0x4a0]
mov byte [ebp - 0x450], cl
movzx edx, byte [ebp - 0x44d]
mov al, byte [ebp + edx - 0x628]
mov byte [ebp - 0x44e], al
movzx ecx, byte [ebp - 0x449]
movzx edx, byte [ebp + ecx - 0x628]
movzx eax, byte [ebp - 0x44a]
add eax, edx
mov byte [ebp - 0x44a], al
mov cl, byte [ebp - 0x449]
add cl, 1
mov byte [ebp - 0x449], cl
movzx edx, byte [ebp - 0x44a]
movzx eax, byte [ebp - 0x44d]
mov cl, byte [ebp + edx - 0x628]
mov byte [ebp + eax - 0x628], cl
movzx edx, byte [ebp - 0x44b]
movzx eax, byte [ebp - 0x44a]
mov cl, byte [ebp + edx - 0x628]
mov byte [ebp + eax - 0x628], cl
movzx edx, byte [ebp - 0x449]
movzx eax, byte [ebp - 0x44b]
mov cl, byte [ebp + edx - 0x628]
mov byte [ebp + eax - 0x628], cl
movzx edx, byte [ebp - 0x449]
mov al, byte [ebp - 0x44e]
mov byte [ebp + edx - 0x628], al
movzx ecx, byte [ebp - 0x44e]
movzx edx, byte [ebp + ecx - 0x628]
movzx eax, byte [ebp - 0x44f]
add eax, edx
mov byte [ebp - 0x44f], al
movzx ecx, byte [ebp - 0x450]
movzx edx, byte [ebp - 0x44a]
movzx eax, byte [ebp + edx - 0x628]
movzx edx, byte [ebp - 0x449]
movzx edx, byte [ebp + edx - 0x628]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x628]
xor ecx, eax
movzx edx, byte [ebp - 0x44b]
movzx eax, byte [ebp + edx - 0x628]
movzx edx, byte [ebp - 0x44d]
movzx edx, byte [ebp + edx - 0x628]
add eax, edx
movzx edx, byte [ebp - 0x44f]
movzx edx, byte [ebp + edx - 0x628]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x628]
movzx edx, byte [ebp + eax - 0x628]
xor ecx, edx
mov byte [ebp - 0x44b], cl
mov al, byte [ebp - 0x450]
mov byte [ebp - 0x44d], al
mov cl, byte [ebp - 0x44b]
mov byte [ebp - 0x451], cl
cmp dword [ebp - 0x45c], 0
jle 0x457e8b
movsx dx, byte [ebp - 0x451]
mov eax, dword [ebp - 0x45c]
mov word [ebp + eax*2 - 0x1a], dx
mov ecx, dword [ebp - 0x45c]
add ecx, 1
mov dword [ebp - 0x45c], ecx
mov edx, dword [ebp - 0x4a8]
add edx, 1
mov dword [ebp - 0x4a8], edx
mov eax, dword [ebp - 0x45c]
shl eax, 1
mov dword [ebp - 0x4ac], eax
mov ecx, dword [ebp - 0x490]
add ecx, dword [ebp - 0x4ac]
movzx edx, byte [ecx]
mov dword [ebp - 0x474], edx
movsd xmm0, qword [0xaa1988]
movsd qword [ebp - 0x4c0], xmm0
movsd xmm0, qword [0xaa1888]
movsd qword [ebp - 0x504], xmm0
movsd xmm0, qword [0xaa1798]
movsd qword [ebp - 0x4e4], xmm0
movsd xmm0, qword [0xaa1628]
movsd qword [ebp - 0x4c8], xmm0
movsd xmm0, qword [ebp - 0x4e4]
mulsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4e4], xmm0
movsd xmm0, qword [ebp - 0x504]
mulsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x504], xmm0
movsd xmm0, qword [ebp - 0x4c0]
mulsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4c0], xmm0
movsd xmm0, qword [ebp - 0x4e4]
subsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4e4], xmm0
movsd xmm0, qword [ebp - 0x4c8]
comisd xmm0, xmmword [ebp - 0x4c0]
jbe 0x457fe0
movsd xmm0, qword [ebp - 0x4c8]
divsd xmm0, qword [ebp - 0x4c0]
movsd qword [ebp - 0x4c8], xmm0
movsd xmm0, qword [ebp - 0x4e4]
subsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4e4], xmm0
movsd xmm0, qword [ebp - 0x4c0]
divsd xmm0, qword [ebp - 0x504]
movsd qword [ebp - 0x4c0], xmm0
movsd xmm0, qword [ebp - 0x4c8]
addsd xmm0, qword [ebp - 0x4c0]
movsd qword [ebp - 0x4c8], xmm0
jmp 0x45804a
movsd xmm0, qword [ebp - 0x4c0]
mulsd xmm0, qword [ebp - 0x504]
movsd qword [ebp - 0x4c0], xmm0
movsd xmm0, qword [ebp - 0x504]
subsd xmm0, qword [ebp - 0x4e4]
movsd qword [ebp - 0x504], xmm0
movsd xmm0, qword [ebp - 0x4c0]
mulsd xmm0, qword [ebp - 0x504]
movsd qword [ebp - 0x4c0], xmm0
movsd xmm0, qword [ebp - 0x4e4]
mulsd xmm0, qword [ebp - 0x4c8]
movsd qword [ebp - 0x4e4], xmm0
mov dword [ebp - 0x478], 8
mov eax, dword [ebp - 0x45c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x494], ecx
mov edx, dword [ebp - 0x490]
add edx, dword [ebp - 0x494]
movzx eax, byte [edx]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x480], 0x2f
mov ecx, dword [ebp - 0x474]
sub ecx, dword [ebp - 0x478]
mov dword [ebp - 0x484], ecx
mov edx, dword [ebp - 0x47c]
sub edx, dword [ebp - 0x480]
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x484]
shl eax, 4
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x488]
mov dword [ebp - 0x49c], ecx
mov edx, dword [ebp - 0x498]
or edx, dword [ebp - 0x49c]
mov dword [ebp - 0x4a0], edx
mov al, byte [ebp - 0x4a0]
mov byte [ebp - 0x450], al
movzx ecx, byte [ebp - 0x44d]
mov dl, byte [ebp + ecx - 0x628]
mov byte [ebp - 0x44e], dl
movzx eax, byte [ebp - 0x449]
movzx ecx, byte [ebp + eax - 0x628]
movzx edx, byte [ebp - 0x44a]
add edx, ecx
mov byte [ebp - 0x44a], dl
mov al, byte [ebp - 0x449]
add al, 1
mov byte [ebp - 0x449], al
movzx ecx, byte [ebp - 0x44a]
movzx edx, byte [ebp - 0x44d]
mov al, byte [ebp + ecx - 0x628]
mov byte [ebp + edx - 0x628], al
movzx ecx, byte [ebp - 0x44b]
movzx edx, byte [ebp - 0x44a]
mov al, byte [ebp + ecx - 0x628]
mov byte [ebp + edx - 0x628], al
movzx ecx, byte [ebp - 0x449]
movzx edx, byte [ebp - 0x44b]
mov al, byte [ebp + ecx - 0x628]
mov byte [ebp + edx - 0x628], al
movzx ecx, byte [ebp - 0x449]
mov dl, byte [ebp - 0x44e]
mov byte [ebp + ecx - 0x628], dl
movzx eax, byte [ebp - 0x44e]
movzx ecx, byte [ebp + eax - 0x628]
movzx edx, byte [ebp - 0x44f]
add edx, ecx
mov byte [ebp - 0x44f], dl
movzx eax, byte [ebp - 0x450]
movzx ecx, byte [ebp - 0x44a]
movzx edx, byte [ebp + ecx - 0x628]
movzx ecx, byte [ebp - 0x449]
movzx ecx, byte [ebp + ecx - 0x628]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x628]
xor eax, edx
movzx ecx, byte [ebp - 0x44b]
movzx edx, byte [ebp + ecx - 0x628]
movzx ecx, byte [ebp - 0x44d]
movzx ecx, byte [ebp + ecx - 0x628]
add edx, ecx
movzx ecx, byte [ebp - 0x44f]
movzx ecx, byte [ebp + ecx - 0x628]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x628]
movzx ecx, byte [ebp + edx - 0x628]
xor eax, ecx
mov byte [ebp - 0x44b], al
mov dl, byte [ebp - 0x450]
mov byte [ebp - 0x44d], dl
mov al, byte [ebp - 0x44b]
mov byte [ebp - 0x451], al
cmp dword [ebp - 0x45c], 0
jle 0x458256
movsx cx, byte [ebp - 0x451]
mov edx, dword [ebp - 0x45c]
mov word [ebp + edx*2 - 0x1a], cx
mov eax, 2
shl eax, 1
mov dword [ebp - 0x510], eax
cmp dword [ebp - 0x510], 6
jae 0x45826e
jmp 0x458273
call fcn.00a0899a
xor ecx, ecx
mov edx, dword [ebp - 0x510]
mov word [ebp + edx - 0x18], cx
jmp 0x4582d3
mov dword [ebp - 0x4ec], 0
jmp 0x45829d
mov eax, dword [ebp - 0x4ec]
add eax, 1
mov dword [ebp - 0x4ec], eax
cmp dword [ebp - 0x4ec], 3
jge 0x4582d3
mov ecx, dword [ebp - 0x4ec]
shl ecx, 1
mov dword [ebp - 0x514], ecx
cmp dword [ebp - 0x514], 6
jae 0x4582bf
jmp 0x4582c4
call fcn.00a0899a
xor edx, edx
mov eax, dword [ebp - 0x514]
mov word [ebp + eax - 0x18], dx
jmp 0x45828e
push 0
push 0
lea ecx, [ebp - 0x428]
push ecx
lea edx, [ebp - 0x220]
push edx
lea ecx, [ebp - 0x440]
call fcn.00433680
push eax
call fcn.00a600cd
add esp, 0x14
lea eax, [ebp - 0x18]
mov dword [ebp - 0x4d8], eax
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x4d4], ecx
mov edx, dword [ebp - 0x4d4]
mov ax, word [edx]
mov word [ebp - 0x4fa], ax
mov ecx, dword [ebp - 0x4d8]
cmp ax, word [ecx]
jne 0x458374
cmp word [ebp - 0x4fa], 0
je 0x458368
mov edx, dword [ebp - 0x4d4]
mov ax, word [edx + 2]
mov word [ebp - 0x4f8], ax
mov ecx, dword [ebp - 0x4d8]
cmp ax, word [ecx + 2]
jne 0x458374
add dword [ebp - 0x4d4], 4
add dword [ebp - 0x4d8], 4
cmp word [ebp - 0x4f8], 0
jne 0x45830e
mov dword [ebp - 0x518], 0
jmp 0x45837f
sbb edx, edx
or edx, 1
mov dword [ebp - 0x518], edx
mov eax, dword [ebp - 0x518]
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0
jne 0x458411
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x4b0], ecx
mov edx, dword [ebp - 0x4b0]
add edx, 2
mov dword [ebp - 0x520], edx
mov eax, dword [ebp - 0x4b0]
mov cx, word [eax]
mov word [ebp - 0x4f6], cx
add dword [ebp - 0x4b0], 2
cmp word [ebp - 0x4f6], 0
jne 0x4583af
mov edx, dword [ebp - 0x4b0]
sub edx, dword [ebp - 0x520]
sar edx, 1
mov dword [ebp - 0x524], edx
cmp dword [ebp - 0x524], 2
jae 0x458411
mov byte [ebp - 0x46e], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.00432fb0
mov al, byte [ebp - 0x46e]
jmp 0x458683
mov byte [ebp - 0x452], 0
mov byte [ebp - 0x460], 0
mov byte [ebp - 0x45d], 0
mov byte [ebp - 0x45e], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4f4], 0
mov byte [ebp - 0x461], 0
lea ecx, [ebp - 0x440]
call fcn.004dbc40
mov dword [ebp - 0x468], eax
jmp 0x45846a
mov eax, dword [ebp - 0x468]
sub eax, 1
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], 0
jle 0x45865f
mov ecx, dword [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x440]
call fcn.00439780
movzx edx, word [eax]
cmp edx, 0x2e
jne 0x45849a
mov byte [ebp - 0x452], 1
jmp 0x45845b
movzx eax, byte [ebp - 0x452]
test eax, eax
je 0x4584df
mov ecx, dword [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x440]
call fcn.00439780
movzx edx, word [eax]
cmp edx, 0x29
jne 0x4584d1
mov byte [ebp - 0x452], 0
mov byte [ebp - 0x45d], 1
jmp 0x45845b
mov byte [ebp - 0x452], 0
mov byte [ebp - 0x460], 1
movzx eax, byte [ebp - 0x45d]
test eax, eax
je 0x45857e
mov ecx, dword [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x440]
call fcn.00439780
movzx edx, word [eax]
cmp edx, 0x28
jne 0x458522
mov byte [ebp - 0x45d], 0
mov byte [ebp - 0x460], 1
mov byte [ebp - 0x45e], 1
jmp 0x45845b
mov eax, dword [ebp - 0x468]
push eax
lea ecx, [ebp - 0x440]
call fcn.00439780
mov cx, word [eax]
movzx edx, cx
push edx
call fcn.00a6043c
add esp, 4
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x489], al
movzx eax, byte [ebp - 0x489]
test eax, eax
je 0x458579
cmp dword [ebp - 0x4f4], 3
jge 0x458579
mov ecx, dword [ebp - 0x4f4]
add ecx, 1
mov dword [ebp - 0x4f4], ecx
jmp 0x45845b
jmp 0x45865f
movzx edx, byte [ebp - 0x45e]
test edx, edx
je 0x4585bd
mov byte [ebp - 0x45e], 0
mov eax, dword [ebp - 0x468]
push eax
lea ecx, [ebp - 0x440]
call fcn.00439780
mov cx, word [eax]
movzx edx, cx
push edx
call fcn.0045a900
add esp, 4
movzx eax, al
test eax, eax
jne 0x4585bd
jmp 0x45845b
movzx ecx, byte [ebp - 0x460]
test ecx, ecx
je 0x45865a
mov edx, dword [ebp - 0x468]
push edx
lea ecx, [ebp - 0x440]
call fcn.00439780
movzx eax, word [eax]
cmp eax, 0x5f
jne 0x4585fa
cmp dword [ebp - 0x4dc], 3
jge 0x4585f1
jmp 0x45865f
mov byte [ebp - 0x461], 1
jmp 0x45865f
mov ecx, dword [ebp - 0x468]
push ecx
lea ecx, [ebp - 0x440]
call fcn.00439780
mov dx, word [eax]
movzx eax, dx
push eax
call fcn.0045a900
add esp, 4
mov byte [ebp - 0x45f], al
movzx ecx, byte [ebp - 0x45f]
xor edx, edx
cmp dword [ebp - 0x4dc], 0xa
setl dl
and ecx, edx
mov byte [ebp - 0x45f], cl
movzx eax, byte [ebp - 0x45f]
test eax, eax
jne 0x45864b
jmp 0x45865f
mov ecx, dword [ebp - 0x4dc]
add ecx, 1
mov dword [ebp - 0x4dc], ecx
jmp 0x45845b
mov dl, byte [ebp - 0x461]
mov byte [ebp - 0x46d], dl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.00432fb0
mov al, byte [ebp - 0x46d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00a0828c
mov esp, ebp
pop ebp
ret