Function at 0x2c9c41f
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
xor ebx, ebx
lea eax, [ebp - 0x70]
push 0x34
push ebx
push eax
mov dword [ebp - 0x20], ebx
call fcn.02c951fb
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x34], ebx
cmp eax, 3
jb 0x2c9c470
cmp byte [ebx], 0xef
jne 0x2c9c470
cmp byte [ebx + 1], 0xbb
jne 0x2c9c470
cmp byte [ebx + 2], 0xbf
jne 0x2c9c470
add ebx, 3
sub eax, 3
mov dword [ebp - 0x34], ebx
mov esi, dword [ebp + 8]
lea edi, [ebp - 0x64]
fld qword [0x2ca0c60]
add eax, ebx
mov dword [ebp - 0x1c], eax
or eax, 0xffffffff
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x6c], eax
sub eax, 8
sub dword [ebp - 0x6c], 8
mov dword [ebp - 0x68], eax
xor eax, eax
inc eax
mov dword [ebp - 0x4c], eax
and dword [ebp - 0x14], 0
xor edi, edi
and dword [ebp - 0x18], edi
xor esi, esi
push 8
pop edx
mov dword [ebp + 0x10], edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x48], ebx
cmp ebx, dword [ebp - 0x1c]
jne 0x2c9c4c9
xor cl, cl
jmp 0x2c9c4cb
mov cl, byte [ebx]
mov byte [ebp + 0xf], cl
test dl, 0x20
je 0x2c9c810
test cl, cl
je 0x2c9d02e
cmp edi, dword [ebp - 0x6c]
ja 0x2c9d02e
test dl, 0x10
je 0x2c9c7c7
and edx, 0xffffffef
movsx eax, cl
mov dword [ebp - 8], edx
fstp st(0)
sub eax, 0x62
je 0x2c9c7b0
sub eax, 4
je 0x2c9c7a0
sub eax, 8
je 0x2c9c790
sub eax, 4
je 0x2c9c780
dec eax
sub eax, 1
je 0x2c9c770
sub eax, 1
je 0x2c9c537
mov eax, dword [ebp - 0x4c]
jmp 0x2c9c88f
mov eax, dword [ebp - 0x1c]
sub eax, ebx
cmp eax, 4
jle 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
push eax
call fcn.02c9c393
mov byte [ebp + 0xf], al
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
push ecx
call fcn.02c9c393
mov byte [ebp + 0x13], al
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
push ecx
call fcn.02c9c393
mov byte [ebp + 0xb], al
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
push ecx
call fcn.02c9c393
mov byte [ebp - 1], al
pop ecx
cmp al, 0xff
je 0x2c9d030
mov al, byte [ebp + 0xf]
movzx ecx, byte [ebp + 0x13]
shl al, 4
movzx esi, al
mov al, byte [ebp + 0xb]
or esi, ecx
shl al, 4
mov ecx, esi
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x28], esi
movzx eax, byte [ebp - 1]
or ecx, eax
mov eax, ecx
mov dword [ebp - 0x28], ecx
and eax, 0xf800
cmp eax, 0xd800
jne 0x2c9c6a0
mov eax, dword [ebp - 0x1c]
sub eax, ebx
cmp eax, 6
jle 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x5c
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x75
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
push eax
call fcn.02c9c393
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
push eax
call fcn.02c9c393
mov byte [ebp + 0xf], al
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
push ecx
call fcn.02c9c393
mov byte [ebp + 0x13], al
pop ecx
cmp al, 0xff
je 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
push ecx
call fcn.02c9c393
mov byte [ebp + 0xb], al
pop ecx
cmp al, 0xff
je 0x2c9d030
mov esi, dword [ebp - 0x28]
movzx ecx, byte [ebp + 0xf]
and esi, 0x3bf
mov al, byte [ebp + 0x13]
or esi, 0x40
and ecx, 3
shl esi, 2
or esi, ecx
shl al, 4
mov ecx, esi
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x28], esi
movzx eax, byte [ebp + 0xb]
or ecx, eax
mov eax, dword [ebp - 0x4c]
cmp ecx, 0x7f
ja 0x2c9c6be
test eax, eax
jne 0x2c9c6b2
mov esi, dword [ebp - 0x14]
mov byte [edi + esi], cl
inc edi
mov esi, dword [ebp - 0xc]
mov dword [ebp + 0x10], edi
jmp 0x2c9d007
cmp ecx, 0x7ff
ja 0x2c9c6f1
test eax, eax
je 0x2c9c6cf
add edi, 2
jmp 0x2c9c6b3
mov esi, dword [ebp - 0x14]
mov eax, ecx
shr eax, 6
and cl, 0x3f
or al, 0xc0
or cl, 0x80
mov byte [edi + esi], al
mov byte [edi + esi + 1], cl
add edi, 2
mov dword [ebp + 0x10], edi
jmp 0x2c9d001
cmp ecx, 0xffff
ja 0x2c9c72b
test eax, eax
je 0x2c9c702
add edi, 3
jmp 0x2c9c6b3
mov esi, dword [ebp - 0x14]
mov eax, ecx
shr eax, 0xc
or al, 0xe0
mov byte [edi + esi], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
or cl, 0x80
or al, 0x80
mov byte [edi + esi + 1], al
mov byte [edi + esi + 2], cl
add edi, 3
jmp 0x2c9c6e9
test eax, eax
je 0x2c9c737
add edi, 4
jmp 0x2c9c6b3
mov esi, dword [ebp - 0x14]
mov eax, ecx
shr eax, 0x12
or al, 0xf0
mov byte [edi + esi], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [edi + esi + 1], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
or cl, 0x80
or al, 0x80
mov byte [edi + esi + 2], al
mov byte [edi + esi + 3], cl
add edi, 4
jmp 0x2c9c6e9
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x2c9c7be
mov ecx, dword [ebp - 0x14]
mov byte [edi + ecx], 9
jmp 0x2c9c7be
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x2c9c7be
mov ecx, dword [ebp - 0x14]
mov byte [edi + ecx], 0xd
jmp 0x2c9c7be
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x2c9c7be
mov ecx, dword [ebp - 0x14]
mov byte [edi + ecx], 0xa
jmp 0x2c9c7be
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x2c9c7be
mov ecx, dword [ebp - 0x14]
mov byte [edi + ecx], 0xc
jmp 0x2c9c7be
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x2c9c7be
mov ecx, dword [ebp - 0x14]
mov byte [edi + ecx], 8
inc edi
mov dword [ebp + 0x10], edi
jmp 0x2c9d007
cmp cl, 0x5c
jne 0x2c9c7d9
or edx, 0x10
fstp st(0)
mov dword [ebp - 8], edx
jmp 0x2c9d007
cmp cl, 0x22
jne 0x2c9c88d
test eax, eax
jne 0x2c9c7ed
mov eax, dword [ebp - 0x14]
mov byte [edi + eax], 0
mov eax, dword [esi + 4]
and edx, 0xffffffdf
and dword [ebp - 0x14], 0
mov dword [ebp - 8], edx
sub eax, 1
je 0x2c9c851
sub eax, 4
mov eax, dword [ebp - 0x4c]
jne 0x2c9c810
or edx, 1
mov dword [esi + 8], edi
mov dword [ebp - 8], edx
test byte [ebp - 0x60], 1
je 0x2c9c933
test edx, 0x6000
je 0x2c9c8ec
test edx, 0x2000
je 0x2c9c8a5
fstp st(0)
cmp cl, 0xd
je 0x2c9c842
cmp cl, 0xa
je 0x2c9c842
test cl, cl
jne 0x2c9d007
and edx, 0xffffdfff
dec ebx
mov dword [ebp - 8], edx
jmp 0x2c9d007
cmp dword [ebp - 0x4c], 0
fstp st(0)
je 0x2c9c861
lea eax, [edi + 1]
add dword [esi + 0xc], eax
jmp 0x2c9c882
imul edx, dword [esi + 8], 0xc
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov dword [edx + ecx], eax
imul ecx, dword [esi + 8], 0xc
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 8]
mov dword [ecx + eax + 4], edi
lea eax, [edi + 1]
add dword [esi + 0x10], eax
or edx, 0x48
mov dword [ebp - 8], edx
jmp 0x2c9d004
fstp st(0)
test eax, eax
jne 0x2c9c7be
mov esi, dword [ebp - 0x14]
mov byte [edi + esi], cl
mov esi, dword [ebp - 0xc]
jmp 0x2c9c7be
test edx, 0x4000
je 0x2c9c933
fstp st(0)
test cl, cl
je 0x2c9d030
cmp cl, 0x2a
jne 0x2c9d007
mov eax, dword [ebp - 0x1c]
dec eax
cmp ebx, eax
jae 0x2c9d004
cmp byte [ebx + 1], 0x2f
mov eax, dword [ebp - 0x4c]
jne 0x2c9d007
and edx, 0xffffbfff
inc ebx
mov dword [ebp - 8], edx
jmp 0x2c9d007
cmp cl, 0x2f
jne 0x2c9c933
fstp st(0)
test dl, 0x88
jne 0x2c9c902
cmp dword [esi + 4], 1
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp ebx, dword [ebp - 0x1c]
je 0x2c9d030
mov al, byte [ebx]
cmp al, 0x2a
je 0x2c9c928
cmp al, 0x2f
jne 0x2c9d030
or edx, 0x2000
jmp 0x2c9c885
or edx, 0x4000
jmp 0x2c9c885
test dl, dl
jns 0x2c9c975
test cl, cl
je 0x2c9d013
movsx eax, cl
fstp st(0)
sub eax, 9
je 0x2c9d004
sub eax, 1
je 0x2c9c969
sub eax, 3
je 0x2c9d004
sub eax, 0x13
jne 0x2c9d030
jmp 0x2c9d004
inc dword [ebp - 0x44]
and dword [ebp - 0x40], 0
jmp 0x2c9d004
test dl, 8
je 0x2c9ccc3
movsx eax, cl
fstp st(0)
sub eax, 9
je 0x2c9d004
sub eax, 1
je 0x2c9c969
sub eax, 3
je 0x2c9d004
sub eax, 0x13
je 0x2c9d004
sub eax, 0x3d
je 0x2c9cca6
test dl, 4
je 0x2c9c9c2
cmp cl, 0x2c
jne 0x2c9d030
and edx, 0xfffffffb
jmp 0x2c9c885
test dl, 0x40
je 0x2c9c9d8
cmp cl, 0x3a
jne 0x2c9d030
and edx, 0xffffffbf
jmp 0x2c9c885
and edx, 0xfffffff7
mov dword [ebp - 8], edx
cmp cl, 0x22
je 0x2c9cc62
cmp cl, 0x5b
je 0x2c9cc29
cmp cl, 0x66
je 0x2c9cbae
cmp cl, 0x6e
je 0x2c9cb75
cmp cl, 0x74
je 0x2c9cb02
cmp cl, 0x7b
je 0x2c9cacf
cmp cl, 0x30
jl 0x2c9ca1e
cmp cl, 0x39
jle 0x2c9ca27
cmp cl, 0x2d
jne 0x2c9d030
push 3
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
cmp dword [ebp - 0x4c], 0
mov ebx, dword [ebp - 0x48]
jne 0x2c9ca97
mov al, byte [ebp + 0xf]
mov edi, dword [ebp - 0x1c]
cmp al, 0x30
jl 0x2c9ca60
cmp al, 0x39
jle 0x2c9ca74
cmp al, 0x2b
je 0x2c9ca74
cmp al, 0x2d
je 0x2c9ca74
cmp al, 0x65
je 0x2c9ca74
cmp al, 0x45
je 0x2c9ca74
cmp al, 0x2e
jne 0x2c9ca80
inc ebx
mov dword [ebp - 0x48], ebx
cmp ebx, edi
je 0x2c9ca80
mov al, byte [ebx]
jmp 0x2c9ca58
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
or edx, 3
mov edi, dword [ebp + 0x10]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], esi
jmp 0x2c9cf80
mov edx, dword [ebp - 8]
and dword [ebp - 0x24], 0
and edx, 0xffffe0ff
and dword [ebp - 0x3c], 0
and dword [ebp - 0x38], 0
and dword [ebp - 0x30], 0
cmp byte [ebp + 0xf], 0x2d
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0xc], esi
je 0x2c9cac4
or edx, 2
jmp 0x2c9cf01
or edx, 0x100
jmp 0x2c9c885
push 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], esi
jmp 0x2c9d004
mov eax, dword [ebp - 0x1c]
sub eax, ebx
cmp eax, 3
jl 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x72
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x75
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x65
jne 0x2c9d030
push 6
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
mov esi, dword [ebp - 0x10]
xor eax, eax
mov edx, dword [ebp - 8]
inc eax
mov ebx, dword [ebp - 0x48]
or edx, eax
mov dword [ebp - 0xc], esi
mov dword [esi + 8], eax
mov dword [ebp - 8], edx
jmp 0x2c9cf80
mov eax, dword [ebp - 0x1c]
sub eax, ebx
cmp eax, 3
jl 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x75
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x6c
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x6c
jne 0x2c9d030
push 7
jmp 0x2c9cbf2
mov eax, dword [ebp - 0x1c]
sub eax, ebx
cmp eax, 4
jl 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x61
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x6c
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x73
jne 0x2c9d030
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x65
jne 0x2c9d030
push 6
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
or edx, 1
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], esi
jmp 0x2c9cf80
push 2
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
or edx, 8
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], esi
jmp 0x2c9d004
push 5
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.02c9d114
add esp, 0x14
test eax, eax
je 0x2c9d030
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 0x48]
or edx, 0x20
xor edi, edi
mov dword [ebp - 8], edx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x10], edi
jmp 0x2c9d004
test esi, esi
je 0x2c9d030
cmp dword [esi + 4], 2
jne 0x2c9d030
and edx, 0xfffffff3
or edx, 1
jmp 0x2c9cf01
lea eax, [esi + 4]
mov esi, dword [eax]
mov dword [ebp + 8], eax
cmp esi, 1
je 0x2c9cf06
lea eax, [esi - 3]
cmp eax, 1
ja 0x2c9cf7b
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x2c9cdae
mov eax, dword [ebp - 0x24]
fstp st(0)
inc eax
mov dword [ebp - 0x24], eax
cmp esi, 3
je 0x2c9cd35
test edx, 0x400
jne 0x2c9cd90
push 0
push 0xa
push dword [ebp - 0x38]
movsx eax, cl
push dword [ebp - 0x3c]
sub eax, 0x30
cdq
mov esi, eax
mov edi, edx
call fcn.02c9d2f0
add esi, eax
mov dword [ebp - 0x3c], esi
adc edi, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp + 0x10]
jmp 0x2c9d001
test edx, 0x400
jne 0x2c9cd90
mov esi, 0x200
test esi, edx
jne 0x2c9d030
cmp eax, 1
jne 0x2c9cd59
cmp cl, 0x30
jne 0x2c9cd59
or edx, esi
mov dword [ebp - 8], edx
movsx eax, cl
sub eax, 0x30
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0xc]
push 0
push 0xa
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.02c9d2f0
add esi, eax
mov eax, dword [ebp - 0xc]
adc edi, edx
mov edx, dword [ebp - 8]
mov dword [eax + 8], esi
mov esi, eax
mov dword [esi + 0xc], edi
mov edi, dword [ebp + 0x10]
jmp 0x2c9d004
imul ecx, dword [ebp - 0x30], 0xa
or edx, 0x800
movsx eax, byte [ebp + 0xf]
add eax, 0xffffffd0
mov dword [ebp - 8], edx
add eax, ecx
mov dword [ebp - 0x30], eax
jmp 0x2c9d001
cmp cl, 0x2b
je 0x2c9cde9
cmp cl, 0x2d
je 0x2c9cde9
cmp cl, 0x2e
jne 0x2c9ce16
cmp esi, 3
jne 0x2c9ce16
cmp dword [ebp - 0x24], 0
fstp st(0)
je 0x2c9d030
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
and dword [ebp - 0x24], 0
mov dword [eax], 4
fild qword [esi + 8]
fstp qword [esi + 8]
jmp 0x2c9d004
mov eax, edx
and eax, 0xc00
cmp eax, 0x400
jne 0x2c9ce16
mov eax, edx
fstp st(0)
or eax, 0x800
mov edx, eax
or edx, 0x1000
cmp cl, 0x2d
cmovne edx, eax
mov dword [ebp - 8], edx
jmp 0x2c9d001
test edx, 0x400
jne 0x2c9ce9d
cmp esi, 4
jne 0x2c9ce65
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x2c9d02e
fild qword [ebp - 0x3c]
push eax
push ecx
push ecx
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fstp qword [esp]
call fcn.02c9d0cf
fdivr qword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebp - 8]
mov cl, byte [ebp + 0xf]
mov dword [ebp - 0xc], esi
fadd qword [eax + 8]
fstp qword [eax + 8]
jmp 0x2c9ce6a
mov esi, dword [ebp - 0xc]
fstp st(0)
cmp cl, 0x65
je 0x2c9ce74
cmp cl, 0x45
jne 0x2c9ced1
mov eax, dword [ebp + 8]
or edx, 0x400
cmp dword [eax], 3
jne 0x2c9ce8e
mov dword [eax], 4
fild qword [esi + 8]
fstp qword [esi + 8]
and dword [ebp - 0x24], 0
and edx, 0xfffffdff
jmp 0x2c9c885
cmp dword [ebp - 0x24], 0
je 0x2c9d02e
mov eax, dword [ebp - 0x30]
mov ecx, eax
neg ecx
and edx, 0x1000
cmovne eax, ecx
push eax
push ecx
push ecx
fstp qword [esp]
call fcn.02c9d0cf
mov esi, dword [ebp - 0xc]
add esp, 0xc
mov edx, dword [ebp - 8]
fmul qword [esi + 8]
fstp qword [esi + 8]
test edx, 0x100
je 0x2c9cefe
mov eax, dword [ebp + 8]
cmp dword [eax], 3
jne 0x2c9cef6
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
neg ecx
mov dword [esi + 8], ecx
adc eax, 0
neg eax
mov dword [esi + 0xc], eax
jmp 0x2c9cefe
fld qword [esi + 8]
fchs
fstp qword [esi + 8]
or edx, 3
mov dword [ebp - 8], edx
jmp 0x2c9cf80
movsx eax, cl
fstp st(0)
sub eax, 9
je 0x2c9d001
sub eax, 1
je 0x2c9cffa
sub eax, 3
je 0x2c9d001
sub eax, 0x13
je 0x2c9d001
dec eax
sub eax, 1
je 0x2c9cf5c
sub eax, 0xa
je 0x2c9cf4e
sub eax, 0x51
jne 0x2c9d030
and edx, 0xfffffffb
or edx, 1
mov dword [ebp - 8], edx
jmp 0x2c9cf7d
test dl, 4
je 0x2c9d030
and edx, 0xfffffffb
jmp 0x2c9cf49
test dl, 4
jne 0x2c9d030
mov esi, dword [ebp - 0xc]
or edx, 0x20
xor edi, edi
mov dword [ebp - 8], edx
mov dword [ebp + 0x10], edi
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x14], eax
jmp 0x2c9cf80
fstp st(0)
mov esi, dword [ebp - 0xc]
test dl, 2
je 0x2c9cf8f
and edx, 0xfffffffd
dec ebx
mov dword [ebp - 8], edx
mov dword [ebp - 0x48], ebx
test dl, 1
je 0x2c9d004
mov eax, dword [esi]
and edx, 0xfffffffe
or edx, 4
mov ecx, edx
test eax, eax
jne 0x2c9cfad
or edx, 0x80
jmp 0x2c9c885
or edx, 8
cmp dword [eax + 4], 2
cmovne edx, ecx
cmp dword [ebp - 0x4c], 0
mov dword [ebp - 8], edx
jne 0x2c9cfe3
mov ecx, dword [eax + 4]
sub ecx, 1
je 0x2c9cfd8
sub ecx, 1
jne 0x2c9cfe3
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4], esi
jmp 0x2c9cfe3
imul ecx, dword [eax + 8], 0xc
mov eax, dword [eax + 0xc]
mov dword [ecx + eax + 8], esi
mov eax, dword [esi]
inc dword [eax + 8]
mov eax, dword [eax + 8]
cmp eax, dword [ebp - 0x6c]
ja 0x2c9d030
mov esi, dword [esi]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
jmp 0x2c9d004
inc dword [ebp - 0x44]
and dword [ebp - 0x40], 0
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
fld qword [0x2ca0c60]
inc ebx
jmp 0x2c9c4bd
sub dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
js 0x2c9d02a
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x34]
jmp 0x2c9c49c
fstp st(0)
jmp 0x2c9d062
fstp st(0)
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
mov eax, dword [ebp - 0x20]
cmovne eax, dword [ebp - 0x18]
test eax, eax
je 0x2c9d04e
mov esi, dword [eax + 0x10]
push eax
call dword [ebp - 0x58]
mov eax, esi
pop ecx
test esi, esi
jne 0x2c9d040
test ebx, ebx
jne 0x2c9d060
push dword [ebp - 0x18]
lea eax, [ebp - 0x64]
push eax
call fcn.02c9d069
pop ecx
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret