Function at 0x40bb40
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x434668
mov eax, dword fs:[0]
push eax
sub esp, 0x1f8
mov eax, dword [0x445050]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x200], eax
xor esi, esi
mov dword [ebp - 0x1dc], 0
movups xmm0, xmmword [str.kHR_QpJ_1D]
mov ax, word [0x44082c]
mov edi, dword [0x446704]
lea ecx, [esi + 0x1f]
mov word [ebp - 0x34], ax
lea eax, [esi + 1]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [0x440824]
movq qword [ebp - 0x3c], xmm0
cmp edi, 2
jl 0x40bca4
movaps xmm2, xmmword [0x440c20]
mov esi, 8
movaps xmm3, xmmword [0x440ca0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, str.kHR_QpJ_1D
psrad xmm1, xmm4
movd xmm5, ecx
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x440c30]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
paddw xmm1, xmmword [0x440c80]
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [ebp - 0x4c], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [ebp - 0x44]
paddw xmm1, xmmword [0x440c80]
pxor xmm1, xmm0
movq qword [ebp - 0x44], xmm1
mov eax, 0x94f2095
mov ecx, esi
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x4c], cx
inc esi
cmp esi, 0xd
jl 0x40bca4
xor eax, eax
mov dword [ebp - 0x1c0], 0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1c0], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40bcf6
sub ecx, edx
lea eax, [ebp - 0x4c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004051a0
mov dword [ebp - 4], 0
movups xmm0, xmmword [str.oPT_b]
movups xmmword [ebp - 0x50], xmm0
movups xmm0, xmmword [0x4408d0]
pextrw eax, xmm0, 7
movups xmmword [ebp - 0x40], xmm0
test ax, ax
je 0x40be87
xor esi, esi
cmp edi, 2
jl 0x40be60
movaps xmm4, xmmword [0x440c20]
mov eax, 1
movaps xmm3, xmmword [0x440ca0]
xor ecx, ecx
movaps xmm6, xmmword [0x440c50]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x50]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + ecx*2 - 0x50], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x48]
pxor xmm1, xmm0
movq qword [ebp + ecx*2 - 0x48], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x40bd74
jmp 0x40be87
mov eax, 0x29e4129f
mov ecx, esi
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x50], cx
inc esi
cmp esi, 0x10
jl 0x40be60
xor eax, eax
mov dword [ebp - 0x1a8], 0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1a8], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40beb4
sub ecx, edx
lea eax, [ebp - 0x50]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1a8]
call fcn.004051a0
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x1a8]
lea ecx, [ebp - 0x48]
call fcn.0040b1d0
add esp, 4
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x194]
cmp edx, 8
jb 0x40bf33
mov ecx, dword [ebp - 0x1a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bf29
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf39
push edx
push ecx
call fcn.00416502
add esp, 8
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x1ac]
cmp edx, 8
jb 0x40bf77
mov ecx, dword [ebp - 0x1c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bf6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf39
push edx
push ecx
call fcn.00416502
add esp, 8
movups xmm0, xmmword [str.hKUXYNMP2_bC]
xor eax, eax
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
movups xmmword [ebp - 0x1d8], xmm0
mov word [ebp - 0x1c0], ax
movq xmm0, qword [0x440a10]
movq qword [ebp - 0x1c8], xmm0
cmp word [0x440a16], ax
je 0x40c0ec
xor esi, esi
cmp edi, 2
jl 0x40c0c4
movaps xmm2, xmmword [0x440c20]
mov eax, 1
movaps xmm3, xmmword [0x440ca0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov esi, 8
pmuldq xmm0, xmm3
movaps xmm7, xmmword [0x440c80]
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
mov eax, str.hKUXYNMP2_bC
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x440c30]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [ebp - 0x1d8], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [ebp - 0x1d0]
pxor xmm1, xmm0
movq qword [ebp - 0x1d0], xmm1
mov eax, 0x94f2095
mov ecx, esi
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x1d8], cx
inc esi
cmp esi, 0xc
jl 0x40c0c4
xor eax, eax
mov dword [ebp - 0x1a8], 0
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1a8], ax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c120
sub ecx, edx
lea eax, [ebp - 0x1d8]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1a8]
call fcn.004051a0
mov byte [ebp - 4], 5
movups xmm0, xmmword [0x440ac4]
movups xmmword [ebp - 0x88], xmm0
movups xmm0, xmmword [0x440ad4]
pextrw eax, xmm0, 7
movups xmmword [ebp - 0x78], xmm0
test ax, ax
je 0x40c2ba
xor esi, esi
cmp edi, 2
jl 0x40c290
movaps xmm4, xmmword [0x440c20]
mov eax, 1
movaps xmm3, xmmword [0x440ca0]
xor ecx, ecx
movaps xmm6, xmmword [0x440c50]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x88]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + ecx*2 - 0x88], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x80]
pxor xmm1, xmm0
movq qword [ebp + ecx*2 - 0x80], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x40c1a1
jmp 0x40c2ba
mov eax, 0x29e4129f
mov ecx, esi
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x88], cx
inc esi
cmp esi, 0x10
jl 0x40c290
xor eax, eax
mov dword [ebp - 0x1c0], 0
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1c0], ax
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c2f0
sub ecx, edx
lea eax, [ebp - 0x88]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004051a0
lea eax, [ebp - 0x1a8]
mov byte [ebp - 4], 6
push eax
lea edx, [ebp - 0x1c0]
lea ecx, [ebp - 0x80]
call fcn.0040b1d0
add esp, 4
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1ac]
cmp edx, 8
jb 0x40c372
mov ecx, dword [ebp - 0x1c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c368
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf3e
push edx
push ecx
call fcn.00416502
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x194]
cmp edx, 8
jb 0x40c3b6
mov ecx, dword [ebp - 0x1a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c3ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf3e
push edx
push ecx
call fcn.00416502
add esp, 8
movups xmm0, xmmword [str.kHR_QpJ_1D]
xor eax, eax
mov dword [ebp - 0x198], 0
mov word [ebp - 0x1a8], ax
xor esi, esi
mov ax, word [0x44082c]
mov dword [ebp - 0x194], 7
mov word [ebp - 0x14], ax
movups xmmword [ebp - 0x2c], xmm0
movq xmm0, qword [0x440824]
movq qword [ebp - 0x1c], xmm0
cmp edi, 2
jl 0x40c4f1
movaps xmm2, xmmword [0x440c20]
mov eax, 1
movaps xmm3, xmmword [0x440ca0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov esi, 8
pmuldq xmm0, xmm3
movaps xmm7, xmmword [0x440c80]
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
mov eax, str.kHR_QpJ_1D
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x440c30]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [eax]
pxor xmm1, xmm0
movaps xmm0, xmm2
movq qword [ebp - 0x2c], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440c50]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, xmm7
paddw xmm1, xmm0
movq xmm0, qword [ebp - 0x24]
pxor xmm1, xmm0
movq qword [ebp - 0x24], xmm1
mov eax, 0x94f2095
mov ecx, esi
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x2c], cx
inc esi
cmp esi, 0xd
jl 0x40c4f1
xor eax, eax
mov dword [ebp - 0x1c0], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1c0], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c543
sub ecx, edx
lea eax, [ebp - 0x2c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004051a0
mov byte [ebp - 4], 0xa
movups xmm0, xmmword [0x440b48]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [0x440b58]
pextrw eax, xmm0, 7
movups xmmword [ebp - 0x20], xmm0
test ax, ax
je 0x40c6d7
xor esi, esi
cmp edi, 2
jl 0x40c6b0
movaps xmm4, xmmword [0x440c20]
mov eax, 1
movaps xmm3, xmmword [0x440ca0]
xor ecx, ecx
movaps xmm6, xmmword [0x440c50]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + ecx*2 - 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x440c80]
paddw xmm1, xmm0
movq xmm0, qword [ebp + ecx*2 - 0x28]
pxor xmm1, xmm0
movq qword [ebp + ecx*2 - 0x28], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x40c5c0
jmp 0x40c6d7
mov eax, 0x29e4129f
mov ecx, esi
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x38
xor word [ebp + esi*2 - 0x30], cx
inc esi
cmp esi, 0x10
jl 0x40c6b0
xor eax, eax
mov dword [ebp - 0x1a8], 0
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 7
lea edx, [ecx + 2]
mov word [ebp - 0x1a8], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c704
sub ecx, edx
lea eax, [ebp - 0x30]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1a8]
call fcn.004051a0
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 0xb
push eax
lea edx, [ebp - 0x1a8]
lea ecx, [ebp - 0x28]
call fcn.0040b1d0
add esp, 4
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x194]
cmp edx, 8
jb 0x40c783
mov ecx, dword [ebp - 0x1a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c779
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf43
push edx
push ecx
call fcn.00416502
add esp, 8
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x1ac]
cmp edx, 8
jb 0x40c7c7
mov ecx, dword [ebp - 0x1c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c7bd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf43
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x38]
xor eax, eax
mov esi, dword [ebp - 0x70]
mov word [ebp - 0x1c0], ax
mov eax, SysReAllocString
sub eax, edx
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 7
cmp eax, esi
jb 0x40cf48
cmp dword [ebp - 0x34], 8
lea ecx, [ebp - 0x48]
push esi
cmovae ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x80]
cmp dword [ebp - 0x6c], 8
cmovae eax, dword [ebp - 0x80]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x200]
lea ecx, [ebp - 0x1f8]
call fcn.0040b670
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x1e4]
cmovae esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1e8]
sub eax, ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x190], esi
cmp edx, eax
ja 0x40c890
cmp dword [ebp - 0x1e4], 8
lea esi, [ebp - 0x1f8]
lea eax, [edx + edx]
cmovae esi, dword [ebp - 0x1f8]
lea edi, [ecx + edx]
push eax
push dword [ebp - 0x190]
mov dword [ebp - 0x1e8], edi
lea ecx, [esi + ecx*2]
push ecx
call fcn.00417a00
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
lea eax, [ebp - 0x1f8]
jmp 0x40c8ab
push edx
push esi
mov byte [ebp - 0x190], 0
lea ecx, [ebp - 0x1f8]
push dword [ebp - 0x190]
push edx
call fcn.004154e0
mov dword [ebp - 0x68], 0
xor ecx, ecx
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x58], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x1e4]
cmp edx, 8
jb 0x40c928
mov ecx, dword [ebp - 0x1f8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c91e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf4d
push edx
push ecx
call fcn.00416502
add esp, 8
xor eax, eax
mov dword [ebp - 0x1d8], 0
cmp dword [ebp - 0x54], 8
lea edx, [ebp - 0x68]
mov word [ebp - 0x1f8], ax
lea edi, [ebp - 0x68]
cmovae edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x1d8]
mov eax, dword [ebp - 0x58]
cmovae edi, dword [ebp - 0x68]
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 7
lea eax, [edx + eax*2]
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x190], eax
sub eax, edi
sar eax, 1
push eax
mov dword [ebp - 0x1c4], 0xf
mov byte [ebp - 0x1d8], 0
call fcn.0040b030
lea eax, [ebp - 0x1d8]
mov dword [ebp - 0x204], eax
mov byte [ebp - 4], 0x12
cmp edi, dword [ebp - 0x190]
je 0x40ca25
nop dword [eax]
nop dword [eax + eax]
mov dl, byte [edi]
mov ecx, dword [ebp - 0x1c8]
mov esi, dword [ebp - 0x1c4]
mov byte [ebp - 0x8c], dl
cmp ecx, esi
jae 0x40c9fb
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x1c8], eax
lea eax, [ebp - 0x1d8]
cmovae eax, dword [ebp - 0x1d8]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x40ca1a
push dword [ebp - 0x8c]
mov byte [ebp - 0x1e0], 0
push dword [ebp - 0x1e0]
push ecx
lea ecx, [ebp - 0x1d8]
call fcn.00405c50
add edi, 2
cmp edi, dword [ebp - 0x190]
jne 0x40c9c0
lea eax, [ebp - 0x1d8]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x1a8]
call fcn.00404970
mov edx, dword [ebp - 0x194]
lea edi, [ebp - 0x1a8]
cmp edx, 0x10
lea esi, [ebp - 0x1a8]
cmovae edi, dword [ebp - 0x1a8]
cmovae esi, dword [ebp - 0x1a8]
add edi, dword [ebp - 0x198]
cmp esi, edi
je 0x40ca89
nop dword [eax + eax]
movsx eax, byte [esi]
push eax
call fcn.0041e404
mov byte [esi], al
add esp, 4
inc esi
cmp esi, edi
jne 0x40ca70
mov edx, dword [ebp - 0x194]
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x1a8]
cmp edx, 0x10
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1b0], 0
cmovae esi, dword [ebp - 0x1a8]
mov ecx, esi
mov dword [ebp - 0x1ac], 0xf
mov byte [ebp - 0x1c0], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cac7
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x1c0]
call fcn.00402660
cmp dword [ebp - 0x1ac], 0x10
lea edx, [ebp - 0x1c0]
push dword [ebp - 0x1b0]
cmovae edx, dword [ebp - 0x1c0]
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x18c], 0x67452301
mov dword [ebp - 0x188], 0xefcdab89
mov dword [ebp - 0x184], 0x98badcfe
mov dword [ebp - 0x180], 0x10325476
call fcn.0040b930
lea ecx, [ebp - 0x18c]
call fcn.0040b9f0
push 0x98
lea eax, [ebp - 0x124]
push 0
push eax
call fcn.00417f90
add esp, 0x10
mov dword [ebp - 0x124], 0x440b38
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 4], 0x17
lea eax, [ebp - 0x120]
push 0
push eax
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x1dc], 0x2e
mov dword [ebp - 0xd4], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0xd8], 0x48
call fcn.00405830
mov dword [ebp - 4], 0x19
mov eax, dword [ebp - 0x124]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x128], eax
lea ecx, [ebp - 0x120]
call fcn.00405760
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 4
mov dword [ebp - 4], 0x1a
xor esi, esi
nop word [eax + eax]
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x110]
push 0
push 2
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx], eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.004160f1
mov ecx, eax
lea edx, [ebp - 0x124]
mov eax, dword [ebp - 0x124]
push dword [ecx + 0xc]
mov eax, dword [eax + 4]
push dword [ecx + 8]
add eax, edx
push eax
mov eax, dword [ecx]
call eax
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x124]
add esp, 0x18
mov eax, dword [eax + 4]
mov byte [ebp + eax - 0xe4], 0x30
movzx eax, byte [ebp + esi - 0x134]
push eax
call fcn.004147e0
inc esi
cmp esi, 0x10
jb 0x40cc30
mov esi, dword [ebp - 0x1fc]
lea ecx, [ebp - 0x120]
push esi
call fcn.00409690
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x1dc], 0xbe
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x128], eax
lea ecx, [ebp - 0x120]
call fcn.00408930
mov eax, dword [ebp - 0x124]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x128], eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 4], 0x1b
push eax
mov dword [ebp - 0xd4], vtable.std::ios_base.0
call fcn.00415cde
mov edx, dword [ebp - 0x1ac]
add esp, 4
cmp edx, 0x10
jb 0x40cd7a
mov ecx, dword [ebp - 0x1c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40cd70
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x194]
cmp edx, 0x10
jb 0x40cdb4
mov ecx, dword [ebp - 0x1a8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40cdaa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0xf
mov byte [ebp - 0x1a8], 0
cmp edx, 0x10
jb 0x40ce09
mov ecx, dword [ebp - 0x1d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40cdff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1c4], 0xf
mov byte [ebp - 0x1d8], 0
cmp edx, 8
jb 0x40ce5e
mov ecx, dword [ebp - 0x68]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ce54
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
xor eax, eax
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], ax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x54], 7
cmp eax, 8
jb 0x40ceac
mov ecx, dword [ebp - 0x28]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cea2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x6c]
cmp edx, 8
jb 0x40cee6
mov ecx, dword [ebp - 0x80]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cedc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov edx, dword [ebp - 0x34]
cmp edx, 8
jb 0x40cf1c
mov ecx, dword [ebp - 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cf12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf52
push edx
push ecx
call fcn.00416502
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004164c4
mov esp, ebp
pop ebp
ret
call fcn.0041a93f
call fcn.0041a93f
call fcn.0041a93f
call fcn.00401220
call fcn.0041a93f
call fcn.0041a93f
int3