Function at 0x4112dd
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using rc4 ksa
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1090
push esi
push edi
push 5
xor edx, edx
mov dword [ebp - 0x6c], 0x42
pop esi
mov ecx, 0x87
mov dword [ebp - 0x68], 0x44
mov dword [ebp - 0x64], 0x5e
mov eax, edx
mov dword [ebp - 0x60], 0x30
mov dword [ebp - 0x5c], 0xffffff6a
mov dword [ebp - 0x100], esi
sub ecx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, esi
jl 0x41131d
mov dword [ebp - 0x1c8], ecx
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x6c], 0x5c
mov dword [ebp - 0x68], 0x4f
mov dword [ebp - 0x64], 0x1c
mov dword [ebp - 0x60], 8
mov dword [ebp - 0x5c], 0xffffff31
sub ecx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, esi
jl 0x411353
mov dword [ebp - 0x368], ecx
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x9c], 0x29
mov dword [ebp - 0x98], 0x14
mov dword [ebp - 0x94], 0xffffffc3
sub ecx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, 3
jl 0x411384
mov edi, dword [0x44a3dc]
xorps xmm1, xmm1
mov dword [ebp - 0x8c], 0x43
mov dword [ebp - 0x88], 0x5d
mov dword [ebp - 0x84], 0x1d
mov dword [ebp - 0x80], 0x52b
movups xmm0, xmmword [ebp - 0x8c]
push 0xb
mov dword [ebp - 0x36c], ecx
mov ecx, dword [0x44a384]
psubd xmm1, xmm0
movaps xmm0, xmm1
mov dword [ebp - 0x6c], 7
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x68], 0x5c
movups xmm0, xmm1
mov dword [ebp - 0x64], 0x5a
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x60], 0x60
movd eax, xmm1
mov dword [ebp - 0x5c], 0xfffffeed
add eax, 0x666
mov dword [ebp - 0x370], eax
pop eax
mov dword [ebp - 0x90], eax
mov eax, edx
jmp 0x41142f
xor edx, edx
mov esi, edx
mov edx, 0x4020e4
inc esi
lea edx, [edx + 2]
cmp esi, 0x2388
jg 0x411451
xor edi, edi
cmp word [edx], di
mov edi, dword [0x44a3dc]
jne 0x411436
jmp 0x411457
sub ecx, 0x3ea8d23d
xor ecx, 0xbe9211d3
mov edx, dword [ebp - 0x90]
xor edi, 0x38fd6e17
sub edx, dword [ebp + eax*4 - 0x6c]
inc eax
push 5
mov dword [ebp - 0x90], edx
pop edx
mov dword [0x44a3dc], edi
cmp eax, edx
jl 0x41142d
mov dword [ebp - 0x8c], 0x1f
mov dword [ebp - 0x88], 0x1d
mov dword [ebp - 0x84], 0x32
mov dword [ebp - 0x80], 0xffffff79
movups xmm1, xmmword [ebp - 0x8c]
push 0x19
pop edx
movaps xmm0, xmm1
mov dword [ebp - 0x2c], edx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x9c], 0x2f
movups xmm0, xmm1
mov dword [ebp - 0x98], 0x63
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x94], 0x892
movd eax, xmm1
add eax, edx
xor edi, edi
mov dword [ebp - 0x1a8], eax
mov edx, 0xa28
mov eax, edi
sub edx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, 3
jl 0x4114fe
push 0x19
pop eax
mov esi, eax
mov dword [ebp - 0x32c], edx
mov eax, edi
cmp byte [0x44a3a0], al
je 0x411535
inc eax
cmp eax, 0x1560
jg 0x411823
cmp byte [eax + 0x44a3a0], 0
jne 0x411520
mov edx, ecx
or edx, 0x19e2f254
sub ecx, 0x5cff6cc9
mov dword [0x44a3dc], edx
push 0x4020e4
push 0x44a3a0
mov dword [0x44a384], ecx
call fcn.00411139
pop ecx
xor edx, edx
mov dword [ebp - 0x98], 0x18
pop ecx
mov dword [ebp - 0x94], 0x3cf
mov eax, edx
add esi, dword [ebp + eax*4 - 0x98]
inc eax
cmp eax, 2
jl 0x411578
push 3
mov dword [ebp - 0x330], esi
mov ecx, 0x1c00
mov dword [ebp - 0x9c], 0x5e
mov eax, edx
mov dword [ebp - 0x98], 0x55
mov dword [ebp - 0x94], 0x174d
pop edi
sub ecx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, edi
jl 0x4115b3
mov dword [ebp - 0x338], ecx
mov eax, edx
mov ecx, 0xe00
mov dword [ebp - 0x9c], 0x37
mov dword [ebp - 0x98], 4
mov dword [ebp - 0x94], 0xbc5
sub ecx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, edi
jl 0x4115ea
mov dword [ebp - 0x390], 0x11
xorps xmm2, xmm2
mov dword [ebp - 0x38c], 0x25
mov dword [ebp - 0x388], 0x3b
mov dword [ebp - 0x384], 0x36b
movups xmm1, xmmword [ebp - 0x390]
mov dword [ebp - 0x8c], 0x50
mov dword [ebp - 0x88], 0x41
movaps xmm0, xmm1
mov dword [ebp - 0x84], 0x17
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x80], 0x12b
movups xmm0, xmm1
mov dword [ebp - 0x334], ecx
psrldq xmm0, 4
paddd xmm1, xmm0
imul ecx, dword [0x44a384], 0x79f7617b
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x8c]
mov dword [ebp - 0x8c], 0x38
add eax, 0x24
mov dword [ebp - 0x88], 0x4a
movaps xmm0, xmm1
mov dword [ebp - 0x340], eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x84], 0x20
movups xmm0, xmm1
mov dword [ebp - 0x80], 0x319
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x28], ecx
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x8c]
push 0x36
add eax, 0x2d
mov dword [0x44a3dc], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x33c], eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x98], 0x45
movups xmm0, xmm1
mov dword [ebp - 0x94], 0x185
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
add eax, 0x45
xor esi, esi
mov dword [ebp - 0x1b4], eax
mov eax, esi
add edx, dword [ebp + eax*4 - 0x98]
inc eax
cmp eax, 2
jl 0x411723
mov dword [ebp - 0x344], edx
mov eax, esi
mov edx, 0x3000
mov dword [ebp - 0x9c], 4
mov dword [ebp - 0x98], 0x32
mov dword [ebp - 0x94], 0x2bca
sub edx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, edi
jl 0x41175b
xor eax, eax
mov dword [ebp - 0x84], edi
inc eax
mov dword [ebp - 0x80], 0x13fb
mov dword [ebp - 0x8c], eax
movaps xmm1, xmm2
mov dword [ebp - 0x88], eax
movups xmm0, xmmword [ebp - 0x8c]
push 0xd
mov dword [ebp - 0x314], edx
mov edx, 0x4020e4
psubd xmm1, xmm0
mov dword [ebp - 0x1e], 0x458a1abe
movaps xmm0, xmm1
mov dword [ebp - 0x1a], 0x93922b5d
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x16], 0xc3c382d9
movups xmm0, xmm1
mov dword [ebp - 0x12], 0x24e792b5
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0xe], 0x2f667eac
movd eax, xmm1
mov word [ebp - 0xa], 0xe506
mov dword [ebp - 0xfc], 9
add eax, 0x1600
mov dword [ebp - 0x348], eax
pop eax
push 0x6c
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], al
pop esi
lea eax, [esi - 0x30]
cmp ax, word [ebp - 0xfc]
ja 0x411850
add edx, 2
movzx eax, word [edx]
mov esi, eax
test ax, ax
jne 0x411808
jmp 0x41185f
or ecx, 0x58db2d27
mov dword [0x44a384], ecx
cmp eax, 0x1ac4
jle 0x411535
call fcn.00411186
mov ecx, dword [0x44a384]
imul edx, ecx, 0xfc8a38d
jmp 0x41153d
add ecx, 0x1e5301af
mov dword [ebp - 0x28], ecx
mov dword [0x44a3dc], ecx
mov esi, 0x401fc0
lea edi, [ebp - 0x7c]
xor edx, edx
mov eax, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x411873
mov eax, ecx
mov dword [ebp - 0xa0], 0xe
or eax, 0x66ccf258
mov esi, edx
mov dword [ebp - 0x3c], eax
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xa0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x411898
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x574], al
inc esi
cmp esi, 0x18
jb 0x4118e5
movzx eax, byte [0x44a3a0]
mov edx, 0xb3a
mov ecx, 0x44a3a0
jmp 0x411962
add edx, eax
inc ecx
cmp edx, 0x24ec
ja 0x411a0c
movzx eax, byte [ecx]
test eax, eax
jne 0x411950
mov eax, dword [ebp - 0x28]
or eax, 0xa2001069
mov dword [0x44a384], eax
call fcn.00411186
mov esi, 0x401fd0
mov dword [ebp - 0x20], 0xf1574e41
lea edi, [ebp - 0x1e8]
mov dword [ebp - 0x1c], 0xb4a527b2
push 0x31
pop eax
movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x58], eax
mov ecx, edx
mov byte [ebp - 0x13], al
mov eax, dword [0x44a3dc]
movsd dword es:[edi], dword [esi]
add eax, 0x4eb2ae9d
mov byte [ebp - 0x55c], dl
mov dword [ebp - 0x18], 0xb27a225d
mov byte [ebp - 0x14], 0x1c
mov dword [ebp - 0x12], 0x36bb5c4f
mov dword [ebp - 0xe], 0x66e86db0
mov word [ebp - 0xa], 0x1fb2
movsd dword es:[edi], dword [esi]
mov dword [0x44a3dc], eax
mov dword [ebp - 8], edx
mov byte [ebp + ecx - 0x30c], cl
inc ecx
cmp ecx, 0x100
jb 0x4119d8
mov ecx, edx
xor esi, esi
mov edx, 0x4020e4
inc ecx
lea edx, [edx + 2]
cmp ecx, 0x198a
jg 0x411a1d
cmp word [edx], si
jne 0x4119f1
cmp ecx, 0x146b
jle 0x411a34
jmp 0x411a27
imul eax, dword [ebp - 0x3c], 0xffb2bc4b
mov dword [0x44a3dc], eax
jmp 0x411969
xor eax, 0x21286c
mov dword [0x44a3dc], eax
mov ecx, dword [0x44a384]
mov edx, ecx
call fcn.0041125d
mov esi, dword [0x44a384]
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x24], eax
lea edi, [esi + 0x4ed939fb]
mov al, byte [ebp + ecx - 0x30c]
xor edx, edx
mov byte [ebp - 1], al
mov eax, ecx
push 0xb
pop ecx
div ecx
movzx ecx, byte [ebp - 1]
push 0x6c
movzx eax, byte [ebp + edx - 0x1e8]
mov edx, 0x1346
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov dword [ebp - 8], eax
mov eax, 0x4020e4
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x51
ja 0x411a91
movzx ecx, word [eax]
test ecx, ecx
jne 0x411a7e
jmp 0x411a9d
imul esi, esi, 0xd61b775e
mov dword [0x44a384], esi
and edi, 0xedbe7dbb
mov edx, esi
or edi, 0x202e4002
mov ecx, esi
mov dword [0x44a3dc], edi
call fcn.0041125d
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov al, byte [ebp + edx - 0x30c]
mov byte [ebp + ecx - 0x30c], al
inc ecx
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x30c], al
mov dword [ebp - 0x24], ecx
cmp ecx, 0x100
jae 0x411af3
mov esi, dword [0x44a384]
mov edi, dword [0x44a3dc]
jmp 0x411a47
mov ecx, dword [0x44a3dc]
xor eax, eax
mov edx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 8], eax
add eax, edx
movzx eax, al
mov edx, 0x44a3a0
mov dword [ebp - 0x24], eax
mov al, byte [0x44a3a0]
jmp 0x411b34
sub al, 0x30
cmp al, 9
ja 0x411b38
inc edx
mov al, byte [edx]
test al, al
jne 0x411b2b
xor ecx, 0x4c05b3dc
mov dword [0x44a384], ecx
call fcn.00411186
mov edx, dword [ebp - 0x24]
mov ecx, 0x4020e4
push 0x6c
mov al, byte [ebp + edx - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x30c], al
pop eax
add eax, 0xffffffd0
cmp ax, word [ebp - 0xfc]
ja 0x411b91
mov edx, dword [ebp - 0x24]
add ecx, 2
movzx eax, word [ecx]
mov dword [ebp - 0x3c], eax
test ax, ax
jne 0x411b6c
mov ecx, dword [0x44a3dc]
jmp 0x411ba3
mov ecx, dword [0x44a3dc]
and ecx, 0x8661ac3a
mov dword [0x44a3dc], ecx
imul eax, ecx, 0x72365eac
mov dword [ebp - 0x30], eax
mov dword [0x44a384], eax
movzx eax, byte [ebp + edi - 0x30c]
add eax, dword [ebp - 8]
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x590], al
inc esi
cmp esi, 0x18
jb 0x411b01
mov esi, 0x401fdc
mov dword [ebp - 0x28], 0x27fbf456
lea edi, [ebp - 0x3c8]
xor ecx, ecx
mov byte [ebp - 0x578], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x411bfe
mov esi, ecx
mov dl, byte [ebp + esi - 0x30c]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x3c8]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov byte [ebp + edi - 0x30c], dl
cmp esi, 0x100
jb 0x411c0f
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
movzx eax, byte [0x44a3a0]
mov edx, 0x1b6e
mov ecx, 0x44a3a0
jmp 0x411c79
add edx, eax
inc ecx
cmp edx, 0xa66
ja 0x411ebf
movzx eax, byte [ecx]
test eax, eax
jne 0x411c67
mov eax, dword [ebp - 0x30]
and eax, 0xa5b2c01d
mov dword [ebp - 0x30], eax
mov dword [0x44a384], eax
or eax, 0x8d932d5e
mov dword [ebp - 0x38], eax
mov dword [0x44a3dc], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x28]
mov byte [ebp + esi - 0x320], al
inc esi
cmp esi, 4
jb 0x411c54
mov eax, dword [ebp - 0x30]
lea edi, [ebp - 0xccc]
mov ecx, 0xf0
mov esi, 0x4040d0
rep movsd dword es:[edi], dword [esi]
mov esi, 0x401ff0
lea edi, [ebp - 0x7c]
xor edx, edx
mov byte [ebp - 0x31c], dl
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, edx
imul eax, eax, 0x1fb9874e
mov byte [ebp + ecx - 0x30c], cl
inc ecx
cmp ecx, 0x100
jb 0x411d25
mov dword [0x44a384], eax
mov esi, edx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xa0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x411d42
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0xccc]
mov byte [ebp + esi - 0x1090], al
inc esi
cmp esi, 0x3c0
jb 0x411d8f
push 0xb
pop eax
mov dword [ebp - 0x84], eax
lea edi, [ebp - 0x48]
mov dword [ebp - 0x8c], 0x2d
mov esi, 0x402000
mov dword [ebp - 0x88], 0x49
xor edx, edx
mov dword [ebp - 0x80], 0xffffff6b
movups xmm1, xmmword [ebp - 0x8c]
movsd dword es:[edi], dword [esi]
push 0xd
movaps xmm0, xmm1
mov byte [ebp - 0xcd0], dl
psrldq xmm0, 8
paddd xmm1, xmm0
movsd dword es:[edi], dword [esi]
movups xmm0, xmm1
mov byte [ebp - 0x20], 0xcb
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x1e], 0x2ba6f50f
movd eax, xmm1
movsw word es:[edi], word [esi]
mov dword [ebp - 0x1a], 0xe6bf5d5a
add eax, 0x14
mov dword [ebp - 0x16], 0x8dd51f15
mov dword [ebp - 0x1c0], eax
pop eax
mov byte [ebp - 0x1f], al
mov eax, dword [ebp - 0x38]
and eax, 0xb3a3ebb0
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x38]
mov dword [0x44a3dc], eax
mov eax, edx
mov dword [ebp - 0x12], 0x7ed09186
mov dword [ebp - 0xe], 0xd566a9fe
mov word [ebp - 0xa], 0x50c1
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x24], eax
cmp byte [0x44a3a0], 0
mov ecx, edx
je 0x411eed
inc ecx
cmp ecx, 0x22eb
je 0x411ed3
cmp byte [ecx + 0x44a3a0], 0
jne 0x411eab
jmp 0x411eed
call fcn.00411186
mov eax, dword [0x44a3dc]
or eax, 0x320b3d8b
jmp 0x411c80
call fcn.00411186
and dword [0x44a384], 0x48814944
xor edx, edx
mov esi, dword [0x44a3dc]
mov eax, dword [ebp - 0x24]
xor esi, 0xffe8bfa1
mov byte [ebp + eax - 0x30c], al
and esi, 0x41744de
inc eax
mov dword [0x44a3dc], esi
mov dword [ebp - 0x24], eax
cmp eax, 0x100
jb 0x411ea0
mov dword [ebp - 0x38], esi
mov edi, edx
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0xfc], 0xa
xor edx, edx
mov cl, byte [ebp + edi - 0x30c]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0xfc]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x48]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x30c]
mov byte [ebp + edi - 0x30c], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x30c], al
cmp edi, 0x100
jb 0x411f23
mov esi, dword [ebp - 0x38]
xor eax, eax
mov edx, eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
movzx ecx, al
push 0x6c
mov dword [ebp - 0x24], ecx
mov al, byte [ebp + ecx - 0x30c]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0xa0], eax
add eax, edx
movzx eax, al
mov dword [ebp - 0x3c], eax
pop edx
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + ecx - 0x30c], al
mov ecx, 0x4020e4
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x411fc4
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x411fac
mov eax, 0x44a3a0
xor esi, 0x64a9f057
push eax
push eax
mov edx, esi
mov dword [0x44a384], esi
mov ecx, 0x4020e4
call fcn.004112ad
mov edx, dword [ebp - 0x3c]
mov al, byte [ebp - 1]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
mov byte [ebp + edx - 0x30c], al
movzx eax, byte [ebp + ecx - 0x30c]
add eax, dword [ebp - 0xa0]
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + edi - 0x20]
mov byte [ebp + edi - 0x5ac], al
inc edi
cmp edi, 0x18
jae 0x412029
mov esi, dword [0x44a3dc]
jmp 0x411f72
push 3
pop edi
xor edx, edx
mov dword [ebp - 0x6c], 0x21
push 5
mov byte [ebp - 0x594], dl
mov ecx, 0x1a4
mov dword [ebp - 0x68], 0x5f
mov eax, edx
mov dword [ebp - 0x64], 0x38
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], 0xcb
pop esi
sub ecx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, esi
jl 0x41205d
mov dword [ebp - 0x8c], 0x21
mov dword [ebp - 0x88], 0x2c
mov dword [ebp - 0x84], 0x18
mov dword [ebp - 0x80], 0xffffff8f
movups xmm1, xmmword [ebp - 0x8c]
push 0xc
pop esi
movaps xmm0, xmm1
mov dword [ebp - 0x1c4], ecx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xa0], esi
movups xmm0, xmm1
mov dword [ebp - 0x48], 0x30
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x44], esi
movd eax, xmm1
push 0x51
pop ecx
add eax, esi
mov dword [ebp - 0x40], 0xffffff91
mov dword [ebp - 0x30], eax
mov eax, edx
add ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, edi
jl 0x4120d8
mov esi, 0xffffff7d
mov dword [ebp - 0x3c], ecx
mov ecx, edx
mov dword [ebp - 0x48], 0x63
mov dword [ebp - 0x44], 0x20
mov eax, edx
mov dword [ebp - 0x40], esi
sub ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, edi
jl 0x4120fe
mov dword [ebp - 0x34c], ecx
mov ecx, dword [0x44a384]
and ecx, 0x264f0439
mov dword [ebp - 0x40], esi
push 0x2a
xor esi, esi
mov dword [ebp - 0x48], 0x1a
pop edx
mov dword [ebp - 0x44], 0x3f
mov eax, esi
add edx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, edi
jl 0x412131
push 0x45
mov dword [ebp - 0x3a8], edx
pop edx
push 0x31
pop eax
mov dword [ebp - 0x44], eax
mov eax, esi
mov dword [ebp - 0x40], 0x38a
add edx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x412152
push 0x21
mov dword [ebp - 0x3ac], edx
mov eax, esi
pop edx
push 0x62
pop edi
mov dword [ebp - 0x48], 0x5d
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], 0x120
add edx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x41217b
mov dword [ebp - 0x3b0], edx
mov eax, esi
mov dword [ebp - 0x48], 0x37
mov edx, 0x3000
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x40], 0x2bc1
sub edx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x4121a7
push 0xa
pop eax
mov dword [ebp - 0x3a0], edx
mov edx, eax
mov dword [ebp - 0x44], edi
mov eax, esi
mov dword [ebp - 0x40], 0xffffffc6
add edx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x4121c8
xorps xmm1, xmm1
mov dword [ebp - 0x8c], 0x13
mov dword [ebp - 0x88], 0x57
and ecx, 0x17cbb4ae
mov dword [ebp - 0x84], 0x16
mov dword [ebp - 0x80], 0xffffff80
movups xmm0, xmmword [ebp - 0x8c]
mov dword [ebp - 0x7c], 0x61
mov dword [ebp - 0x78], 0x64
psubd xmm1, xmm0
mov dword [ebp - 0x74], 0x26
movaps xmm0, xmm1
mov dword [ebp - 0x70], 0x3315
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x3a4], edx
movups xmm0, xmm1
mov dword [ebp - 0x24], ecx
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x44], 0x5e
movups xmm0, xmmword [ebp - 0x7c]
push 0x23
movd dword [ebp - 0x378], xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [ebp - 0x40], 0x17f
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x3800
xor edx, edx
mov dword [ebp - 0x398], eax
mov eax, edx
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x412297
mov dword [ebp - 0x39c], ecx
lea edi, [ebp - 0xd8]
push 6
pop ecx
mov esi, 0x40200c
mov dword [ebp - 0x20], 0x9b764147
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xd480df6d
mov eax, edx
mov dword [ebp - 0x18], 0x1b058d5
mov dword [ebp - 0x14], 0x533a6c39
movsw word es:[edi], word [esi]
mov dword [ebp - 0x10], 0xb0834885
mov edi, edx
mov dword [ebp - 0xc], 0x4efda229
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x4122e7
mov esi, edx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x2c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0xd8]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x4122f8
xor eax, eax
mov dword [ebp - 0x28], eax
mov edi, eax
mov esi, eax
mov eax, dword [ebp - 0x24]
add eax, 0x2c4d484d
mov dword [ebp - 0x2c], eax
mov eax, dword [0x44a3dc]
mov dword [ebp - 0x38], eax
lea eax, [edi + 1]
and dword [ebp - 0x2c], 0x73c0e6a8
movzx edi, al
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x38]
or eax, 0x80862ba0
mov dword [ebp - 0x38], eax
mov dword [0x44a3dc], eax
mov eax, dword [ebp - 0x28]
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x440], al
inc esi
cmp esi, 0x18
jb 0x412358
mov esi, 0x402028
mov dword [ebp - 0xec], 0xf7d69d5c
lea edi, [ebp - 0x6c]
mov dword [ebp - 0xe8], 0xac993b76
push 0x12
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
push 0xa
pop edx
mov dword [ebp - 0x24], eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xe4], al
mov byte [ebp - 0xc5], al
push 0x31
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0xc4], al
mov eax, ecx
mov byte [ebp - 0x428], cl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xe3], 0x96de9a67
mov dword [ebp - 0xdf], 0xe5ff309b
mov dword [ebp - 0xdb], 0xaf83d8e2
movsw word es:[edi], word [esi]
mov dword [ebp - 0xd7], 0xc9d86a7a
mov edi, ecx
mov dword [ebp - 0xd3], 0x6b6d614b
mov word [ebp - 0xcf], 0x9e4a
mov byte [ebp - 0xcd], dl
mov dword [ebp - 0xcc], 0x2b8fc67
mov word [ebp - 0xc8], 0x813
mov byte [ebp - 0xc6], 0x53
mov word [ebp - 0xc3], 0x2a23
mov byte [ebp - 0xc1], 2
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x412481
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x390]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x6c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x412492
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0xec]
mov byte [ebp + esi - 0x7dc], al
inc esi
cmp esi, 0x2c
jb 0x4124df
push 0x2d
pop ecx
push 0xe
pop eax
xor edx, edx
mov dword [ebp - 0x48], eax
push 3
mov byte [ebp - 0x7b0], dl
mov eax, edx
mov dword [ebp - 0x44], 0x2f
mov dword [ebp - 0x40], 0xffffff96
pop esi
add ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, esi
jl 0x41255e
push 0x5d
mov dword [ebp - 0x3b4], ecx
mov eax, edx
pop ecx
mov dword [ebp - 0x48], 0x2f
mov dword [ebp - 0x44], 0x4e
mov dword [ebp - 0x40], 0x326
add ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, esi
jl 0x412587
sub dword [ebp - 0x2c], 0x50b1d2de
push 0xa
pop eax
push 5
mov dword [ebp - 0x380], ecx
mov ecx, 0x2ee
mov dword [ebp - 0x6c], eax
mov eax, edx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x68], 0x30
mov dword [ebp - 0x60], 0x3a
mov dword [ebp - 0x5c], 0x245
pop esi
sub ecx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, esi
jl 0x4125c5
mov esi, 0x40203c
mov dword [ebp - 0x394], ecx
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x20], 0x48d4c4f1
push 9
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xa], al
mov eax, edx
mov dword [ebp - 0x1c], 0x9037e7d6
mov dword [ebp - 0x18], 0x5ac6b36f
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0x7fc670ef
mov dword [ebp - 0x10], 0x8c6fe4a5
mov word [ebp - 0xc], 0xebc4
movsd dword es:[edi], dword [esi]
mov byte [ebp - 9], 0x22
mov dword [ebp - 8], edx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x41261b
mov edi, dword [ebp - 0x38]
mov esi, edx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x24]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x6c]
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov ecx, 0x44a3a0
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + esi - 0x30c], al
mov al, byte [0x44a3a0]
test al, al
je 0x412690
push 9
pop edx
sub al, 0x30
cmp al, dl
ja 0x412681
inc ecx
mov al, byte [ecx]
test al, al
jne 0x412672
jmp 0x412690
mov edi, dword [ebp - 0x2c]
xor edi, 0xcd9b0a4
mov dword [0x44a3dc], edi
lea edx, [edi - 0x524b7fb3]
mov ecx, edi
push 0x402144
push 0x44a3a0
mov dword [0x44a384], edx
call fcn.00411139
mov al, byte [ebp - 1]
inc esi
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
mov byte [ebp + ecx - 0x30c], al
cmp esi, 0x100
jae 0x4126d8
mov eax, dword [0x44a384]
mov edi, dword [0x44a3dc]
mov dword [ebp - 0x2c], eax
jmp 0x41262f
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x45c], al
inc esi
cmp esi, 0x18
jb 0x4126e1
push 0x6c
mov ecx, 0x4020e4
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x412760
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x412741
mov eax, dword [0x44a3dc]
jmp 0x41276a
mov eax, dword [0x44a3dc]
or eax, 0x81e4fa4a
xor edx, edx
lea ecx, [eax - 0x2e2f50ed]
mov dword [0x44a384], ecx
mov byte [ebp - 0x444], dl
cmp byte [0x44a3a0], dl
je 0x4127a6
inc edx
cmp edx, 0x1ed4
je 0x41279a
cmp byte [edx + 0x44a3a0], 0
jne 0x412786
jmp 0x4127a6
lea ecx, [eax - 0xcb098fa]
mov dword [0x44a384], ecx
xor ecx, 0x162479da
mov dword [0x44a3dc], ecx
call fcn.00411186
mov esi, 0x402050
mov dword [ebp - 0xec], 0x52429126
lea edi, [ebp - 0x1e8]
mov dword [ebp - 0xe8], 0x54776159
push 0x16
pop eax
movsd dword es:[edi], dword [esi]
xor ecx, ecx
push 0xd
mov byte [ebp - 0xe1], al
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xd6], al
push 0x19
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xcf], al
mov eax, ecx
mov word [ebp - 0xe4], 0x463e
mov byte [ebp - 0xe2], 0x49
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xe0], 0xa9212fd2
mov edi, ecx
mov dword [ebp - 0xdc], 0x1e4a682c
mov word [ebp - 0xd8], 0x6500
mov dword [ebp - 0xd5], 0xbbedc368
mov word [ebp - 0xd1], 0x59db
mov dword [ebp - 0xce], 0x1382f3a5
mov dword [ebp - 0xca], 0x674ed4f6
mov dword [ebp - 0xc6], 0x4a5e1b14
mov word [ebp - 0xc2], 0xbd6b
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x412862
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xa0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x1e8]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x412873
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0xec]
mov byte [ebp + esi - 0x80c], al
inc esi
cmp esi, 0x2c
jb 0x4128c3
xor edx, edx
mov dword [ebp - 0x44], 0x1b
push 8
mov byte [ebp - 0x7e0], dl
mov eax, edx
pop ecx
mov dword [ebp - 0x40], 0xffffffdd
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x412939
mov edi, dword [0x44a3dc]
push 4
pop esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], 0x22
mov dword [ebp - 0x74], 0x14
mov dword [ebp - 0x70], 0x37e
movups xmm1, xmmword [ebp - 0x7c]
push 0x63
mov dword [ebp - 0x35c], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x48], esi
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x44], 0x13
movups xmm0, xmm1
mov dword [ebp - 0x40], 0xffffffb8
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x48
mov dword [ebp - 0x360], eax
mov eax, edi
or eax, 0xffffdff9
mov dword [ebp - 0x38], eax
mov dword [0x44a384], eax
mov eax, edx
add ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x4129b8
push 0x31
pop eax
mov byte [ebp - 0xb], al
and edi, 0x38bb77bb
push 5
pop eax
mov byte [ebp - 9], al
mov eax, dword [0x402060]
mov dword [ebp - 0x44], eax
mov ax, word [0x402064]
mov word [ebp - 0x40], ax
mov eax, edx
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x20], 0x9b662b94
mov dword [ebp - 0x1c], 0xeb73a27b
mov dword [ebp - 0x18], 0x386ceab7
mov dword [ebp - 0x14], 0x8b184991
mov dword [ebp - 0x10], 0x8861c550
mov byte [ebp - 0xc], 0xc7
mov byte [ebp - 0xa], 0x8e
mov dword [ebp - 0x28], edi
mov dword [0x44a3dc], edi
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x412a22
mov esi, edx
mov edi, edx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x100]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x412a35
mov edi, dword [ebp - 0x28]
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x38]
inc eax
mov esi, 0x10ee
movzx eax, al
mov edx, 0x44a3a0
mov dword [ebp - 0x28], eax
movzx eax, byte [0x44a3a0]
test eax, eax
je 0x412ad4
add esi, eax
inc edx
cmp esi, 0xc1e
ja 0x412ab9
movzx eax, byte [edx]
test eax, eax
jne 0x412aa5
jmp 0x412aef
mov edx, ecx
call fcn.0041125d
mov ecx, dword [0x44a384]
mov edi, ecx
or edi, 0x36048ebd
mov dword [0x44a3dc], edi
push 0x4020e4
mov edx, ecx
mov ecx, edi
push 0x44a3a0
call fcn.00411139
pop ecx
pop ecx
mov ecx, dword [0x44a384]
mov eax, ecx
mov edx, ecx
or eax, 0x6ec47e
mov ecx, 0x402144
mov dword [0x44a3dc], eax
mov eax, 0x44a3a0
push eax
push eax
call fcn.004112ad
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
pop ecx
pop ecx
mov cl, byte [ebp + edi - 0x30c]
movzx esi, cl
add eax, esi
movzx edx, al
push 0x6d
mov dword [ebp - 0x24], edx
mov al, byte [ebp + edx - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, 0x402144
mov byte [ebp + edx - 0x30c], cl
mov edx, 0xd90
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1e72
ja 0x412b65
movzx ecx, word [eax]
test ecx, ecx
jne 0x412b4a
mov eax, dword [0x44a3dc]
jmp 0x412b74
call fcn.00411186
imul eax, dword [0x44a3dc], 0xdc419ca8
imul eax, eax, 0xcde151c0
and eax, 0x452a2597
mov dword [0x44a3dc], eax
call fcn.00411186
movzx eax, byte [ebp + edi - 0x30c]
mov ecx, dword [ebp - 8]
add eax, esi
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + ecx - 0x20]
mov byte [ebp + ecx - 0x494], al
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x18
jae 0x412bc8
mov ecx, dword [0x44a384]
mov edi, dword [0x44a3dc]
mov eax, dword [ebp - 0x28]
jmp 0x412a89
mov esi, 0x402068
mov dword [ebp - 0x20], 0xb98e1890
lea edi, [ebp - 0x1e8]
mov dword [ebp - 0x1c], 0x1b2cd5c2
push 0x12
xor edx, edx
mov dword [ebp - 0x18], 0x85cb406e
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x13], al
mov eax, edx
mov byte [ebp - 0x47c], dl
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x14], 0xa8
mov dword [ebp - 0x12], 0x235fca5a
mov dword [ebp - 0xe], 0x81c97ad2
movsd dword es:[edi], dword [esi]
mov word [ebp - 0xa], 0x4838
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x412c16
mov ecx, edx
mov eax, 0x402144
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x9a6
je 0x412c44
cmp word [eax], dx
jne 0x412c2c
mov eax, dword [0x44a3dc]
jmp 0x412c53
mov eax, dword [0x44a3dc]
xor eax, 0xe22017eb
mov dword [0x44a3dc], eax
add eax, 0x48de4d81
mov dword [0x44a384], eax
call fcn.00411186
xor eax, eax
mov esi, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xa0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x1e8]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x412c66
mov edx, dword [0x44a3dc]
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
mov dword [ebp - 0x34], edx
lea eax, [edi + 1]
or dword [ebp - 0x34], 0xef582632
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x478], al
inc esi
cmp esi, 0x18
jb 0x412cbf
xor eax, eax
mov dword [ebp - 0x44], 0x48
push 6
mov byte [ebp - 0x460], al
pop ecx
mov dword [ebp - 0x40], 0xffffffb2
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x412d37
mov dword [ebp - 0x7c], 4
lea edi, [ebp - 0x48]
mov dword [ebp - 0x78], 0x46
mov esi, 0x402078
mov dword [ebp - 0x74], 0x35
xorps xmm2, xmm2
mov dword [ebp - 0x70], 0x32e
movups xmm1, xmmword [ebp - 0x7c]
mov dword [ebp - 0x7c], 0x61
mov dword [ebp - 0x78], 0x50
movaps xmm0, xmm1
mov dword [ebp - 0x74], 0x2d
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x70], 0x1ac
movups xmm0, xmm1
movsd dword es:[edi], dword [esi]
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x350], ecx
movups xmm0, xmmword [ebp - 0x7c]
mov ecx, 0x4020e4
movsd dword es:[edi], dword [esi]
movd eax, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [ebp - 0x20], 0x54ee82e0
movaps xmm0, xmm1
mov dword [ebp - 0x1b], 0x4bdd3bf1
psrldq xmm0, 8
add eax, 0x53
paddd xmm1, xmm0
mov dword [ebp - 0x354], eax
movups xmm0, xmm1
movsw word es:[edi], word [esi]
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x17], 0x5df4da8a
movd eax, xmm1
push 0x31
mov dword [ebp - 0x13], 0x53b3a9e6
add eax, 0x2bc
mov word [ebp - 0xf], 0x1d1e
mov dword [ebp - 0x358], eax
pop eax
push 0xa
mov byte [ebp - 0x1c], al
pop eax
push 0x6c
mov byte [ebp - 0xd], al
mov dword [ebp - 0xc], 0x8dbf8595
movsb byte es:[edi], byte [esi]
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x412e3f
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x412e27
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x412e45
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xfc]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x48]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x412e56
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x4b0], al
inc esi
cmp esi, 0x18
jb 0x412ea3
push 0x43
pop ecx
xor edx, edx
mov dword [ebp - 0x44], 0x27
push 2
mov byte [ebp - 0x498], dl
mov eax, edx
mov dword [ebp - 0x40], 0xffffff96
pop edi
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, edi
jl 0x412f19
mov dword [ebp - 0x7c], 0x4d
mov dword [ebp - 0x78], 0x4e
mov dword [ebp - 0x74], 0x5d
mov dword [ebp - 0x70], 0x2db
movups xmm1, xmmword [ebp - 0x7c]
push 0x2d
pop esi
paddd xmm1, xmm2
mov dword [ebp - 0x1d8], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x44], 0x1d
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x40], 0xffffffc2
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x53
pop ecx
add eax, esi
mov dword [ebp - 0x374], eax
mov eax, edx
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, edi
jl 0x412f86
mov dword [ebp - 0x37c], ecx
mov eax, edx
xor ecx, ecx
mov dword [ebp - 0x44], 6
inc ecx
mov dword [ebp - 0x40], 0xfffffff9
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, edi
jl 0x412fa8
mov dword [ebp - 0x7c], 0x48
movaps xmm1, xmm2
mov dword [ebp - 0x78], 0x5d
mov eax, edx
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x70], 0xffffff54
movups xmm0, xmmword [ebp - 0x7c]
mov dword [ebp - 0x1d0], ecx
mov ecx, 0x3c00
mov dword [ebp - 0x48], esi
psubd xmm1, xmm0
mov dword [ebp - 0x44], 0x34
movaps xmm0, xmm1
mov dword [ebp - 0x40], 0x379f
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x1b0], xmm1
sub ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x413016
push 0x52
pop esi
push 0x6d
mov dword [ebp - 0x1b8], ecx
mov eax, 0x402144
pop ecx
lea edx, [esi + 0x62]
add edx, ecx
add eax, edi
cmp edx, 0x21b2
ja 0x413047
movzx ecx, word [eax]
test ecx, ecx
jne 0x413034
mov ecx, dword [ebp - 0x34]
xor ecx, 0xaad4b90b
lea eax, [ecx + 0x2d09ff64]
mov dword [ebp - 0x44], edi
xor edi, edi
mov dword [ebp - 0x2c], eax
mov dword [0x44a3dc], eax
mov eax, edi
mov dword [ebp - 0x48], 0x45
mov dword [ebp - 0x40], 0x167
add esi, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x413073
push 0x12
pop eax
mov edx, eax
mov dword [ebp - 0x1bc], esi
push 5
pop eax
mov dword [ebp - 0x48], eax
mov eax, edi
mov dword [ebp - 0x44], 0x17
mov dword [ebp - 0x40], 0xffffffd2
add edx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x41309e
mov dword [ebp - 0xbc], edx
mov eax, edi
mov edx, 0x2000
mov dword [ebp - 0x48], 0x1e
mov dword [ebp - 0x44], 0x32
mov dword [ebp - 0x40], 0x1bb0
sub edx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x4130ca
push 5
mov dword [ebp - 0x104], edx
mov eax, edi
mov edx, 0x28a
mov dword [ebp - 0x6c], 0x24
mov dword [ebp - 0x68], 0x5a
mov dword [ebp - 0x64], 0x49
mov dword [ebp - 0x60], 0x39
mov dword [ebp - 0x5c], 0x158
pop esi
sub edx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, esi
jl 0x413107
push 0x19
pop eax
mov byte [ebp - 0x17], al
mov eax, dword [0x402084]
mov dword [ebp - 0x44], eax
mov ax, word [0x402088]
mov dword [ebp - 0x1ac], edx
xor edx, edx
mov word [ebp - 0x40], ax
mov eax, edx
mov dword [ebp - 0x20], 0x45b1ab72
mov dword [ebp - 0x1c], 0x9f9bc646
mov byte [ebp - 0x18], 0xd2
mov dword [ebp - 0x16], 0xb404e0f4
mov dword [ebp - 0x12], 0x3ac904cc
mov dword [ebp - 0xe], 0xb5932f84
mov word [ebp - 0xa], 0x52f1
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x41315f
sub ecx, 0x235e6736
mov esi, edx
mov dword [ebp - 0x34], ecx
mov dword [0x44a384], ecx
push 0x6d
mov edx, 0x22df
mov eax, 0x402144
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x223f
ja 0x4131a8
movzx ecx, word [eax]
test ecx, ecx
jne 0x41318c
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
jmp 0x4131cb
mov edx, dword [ebp - 0x34]
mov eax, 0x44a3a0
push eax
push eax
mov ecx, 0x402144
call fcn.004112ad
mov eax, dword [0x44a3dc]
pop ecx
pop ecx
mov ecx, eax
xor ecx, 0x414a063d
imul ecx, ecx, 0x57656f1c
mov dword [ebp - 0x34], ecx
mov dword [0x44a384], ecx
imul eax, eax, 0xe1040bab
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov byte [ebp - 1], cl
movzx ecx, cl
mov dword [ebp - 0x2c], eax
mov dword [0x44a3dc], eax
mov eax, esi
div dword [ebp - 0x100]
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x41317f
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x30c], cl
mov eax, dword [ebp - 0x2c]
and eax, 0x235737bf
mov dword [ebp - 0x2c], eax
mov dword [0x44a3dc], eax
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x4cc], al
inc esi
cmp esi, 0x18
jb 0x413239
push 0xc
pop eax
mov ecx, eax
mov dword [ebp - 0x20], 0xa8222ef0
mov esi, 0x40208c
mov dword [ebp - 0x1c], 0x2bd6e5a8
lea edi, [ebp - 0xf0]
mov dword [ebp - 0x18], 0xd4267b18
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x14], 0xe3fbaba9
mov byte [ebp - 0x4b4], dl
mov eax, edx
mov dword [ebp - 0x10], 0xd86cdee4
movsw word es:[edi], word [esi]
mov dword [ebp - 0xc], 0x99edef04
mov edi, edx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x4132eb
mov eax, dword [ebp - 0x34]
mov esi, edx
or eax, 0x7d3451cb
mov dword [ebp - 0x34], eax
mov dword [0x44a384], eax
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x58]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0xf0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x41330c
xor eax, eax
mov edx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 0x6c
mov cl, byte [ebp + edi - 0x30c]
movzx eax, cl
mov dword [ebp - 0x24], eax
add eax, edx
movzx edx, al
mov dword [ebp - 8], edx
mov al, byte [ebp + edx - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, 0x4020e4
mov byte [ebp + edx - 0x30c], cl
mov edx, 0x1796
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x25e6
ja 0x4133ae
movzx ecx, word [eax]
test ecx, ecx
jne 0x413395
mov eax, dword [ebp - 0x2c]
jmp 0x4133e0
mov eax, dword [ebp - 0x2c]
mov ecx, 0x402144
mov edx, dword [ebp - 0x34]
sub eax, 0x1c0ec1f6
mov dword [0x44a3dc], eax
mov eax, 0x44a3a0
push eax
push eax
call fcn.004112ad
pop ecx
pop ecx
imul eax, dword [0x44a384], 0x6477c18a
mov dword [0x44a3dc], eax
lea ecx, [eax - 0x3aaefc0]
mov edx, eax
push 0x402144
push 0x44a3a0
mov dword [0x44a384], ecx
call fcn.00411139
movzx eax, byte [ebp + edi - 0x30c]
add eax, dword [ebp - 0x24]
movzx eax, al
pop ecx
pop ecx
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x4e8], al
inc esi
cmp esi, 0x18
jae 0x41343d
mov eax, dword [0x44a384]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
mov eax, dword [0x44a3dc]
mov dword [ebp - 0x2c], eax
jmp 0x413358
mov eax, dword [0x4020c0]
xor ecx, ecx
mov dword [ebp - 0x44], eax
mov ax, word [0x4020c4]
mov word [ebp - 0x40], ax
mov eax, ecx
mov byte [ebp - 0x4d0], cl
mov dword [ebp - 0x38], 0xd7b1e56e
cmp byte [0x44a3a0], al
je 0x413478
inc eax
cmp eax, 0x14f2
jl 0x4134e2
cmp byte [eax + 0x44a3a0], cl
jne 0x413468
mov eax, dword [0x44a384]
mov ecx, eax
and ecx, 0x4f5c614a
mov dword [0x44a3dc], ecx
xor eax, 0x947c649a
mov edx, ecx
push 0x402144
push 0x44a3a0
mov dword [0x44a384], eax
call fcn.00411139
pop ecx
pop ecx
xor ecx, ecx
mov edi, ecx
mov eax, ecx
mov byte [ebp + eax - 0x30c], al
inc eax
cmp eax, 0x100
jb 0x4134ae
mov esi, ecx
push 0x6c
mov edx, 0x1330
mov eax, 0x4020e4
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1eaa
ja 0x4134f3
movzx ecx, word [eax]
test ecx, ecx
jne 0x4134cc
jmp 0x41350b
call fcn.00411186
mov eax, dword [0x44a3dc]
and eax, 0x182593dc
jmp 0x41347d
mov ecx, dword [0x44a384]
mov edx, ecx
lea eax, [ecx + 0x30f72300]
mov dword [0x44a3dc], eax
call fcn.0041125d
imul ecx, dword [0x44a3dc], 0xb09dd6d8
mov dword [0x44a3dc], ecx
imul eax, ecx, 0x521d7024
mov edx, ecx
mov dword [0x44a384], eax
call fcn.0041125d
xor edx, edx
mov cl, byte [ebp + esi - 0x30c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x100]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x30c]
mov byte [ebp + esi - 0x30c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x30c], al
cmp esi, 0x100
jb 0x4134bf
xor eax, eax
mov dword [ebp - 0x28], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp + edi - 0x30c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
imul eax, dword [0x44a3dc], 0x2f82d8bd
mov dword [0x44a3dc], eax
mov eax, dword [ebp - 0x28]
mov al, byte [ebp + eax - 0x30c]
mov byte [ebp + edi - 0x30c], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x30c], cl
movzx eax, byte [ebp + edi - 0x30c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x30c]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x328], al
inc esi
cmp esi, 4
jb 0x41357e
xor edx, edx
mov dword [ebp - 0x44], 0x13
add dword [0x44a384], 0x3698c0a2
mov eax, edx
push 0x37
mov byte [ebp - 0x324], dl
pop ecx
mov dword [ebp - 0x40], 0xffffffb6
add ecx, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 2
jl 0x41360d
push 0xd
pop eax
mov dword [ebp - 0x24], ecx
mov ecx, eax
mov dword [ebp - 0x48], 0x58
mov eax, edx
mov dword [ebp - 0x44], 0x36
mov dword [ebp - 0x40], 0xffffff7e
sub ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, 3
jl 0x413636
mov dword [ebp - 0x40], ecx
call fcn.0042d2ae
test eax, eax
jne 0x414ef6
mov ecx, dword [ebp - 0x1c8]
call fcn.0043dddb
call fcn.0042c204
mov esi, eax
mov edi, 0x402144
push 0x6d
mov dword [ebp - 0x1c8], esi
mov edx, edi
pop ecx
push 9
add ecx, 0xffffffd0
pop eax
cmp cx, ax
ja 0x413691
add edx, 2
movzx eax, word [edx]
mov ecx, eax
test ax, ax
jne 0x413672
mov eax, dword [0x44a384]
jmp 0x41369b
imul eax, dword [0x44a384], 0xc2a5d7f
mov ecx, dword [0x44a3dc]
sub eax, 0x3f9fa9fc
push edi
push 0x44a3a0
mov edx, ecx
mov dword [0x44a384], eax
call fcn.00411139
mov eax, dword [ebp - 0x368]
mov ecx, dword [ebp - 0x32c]
mov dword [ebp - 0xf8], eax
add ecx, ecx
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x108], eax
imul eax, dword [0x44a384], 0xcdaa9a42
mov dword [0x44a384], eax
call fcn.0041d3cf
mov ecx, dword [ebp - 0x330]
add ecx, ecx
mov dword [ebp - 8], eax
call fcn.0041d3cf
mov ecx, dword [ebp - 0x334]
imul ecx, dword [ebp - 0x338]
mov dword [ebp - 0x28], eax
add ecx, ecx
call fcn.0041d3cf
mov ecx, dword [ebp - 0x33c]
imul ecx, dword [ebp - 0x340]
mov dword [ebp - 0x58], eax
add ecx, ecx
call fcn.0041d3cf
mov ecx, dword [ebp - 0x344]
imul ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x2c], eax
add ecx, ecx
call fcn.0041d3cf
mov ecx, dword [ebp - 0x348]
imul ecx, dword [ebp - 0x314]
mov dword [ebp - 0x1b4], eax
add ecx, ecx
call fcn.0041d3cf
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x34], edi
call fcn.004348f7
mov ecx, dword [ebp - 8]
mov edx, esi
push eax
call fcn.00434436
add esp, 0xc
lea ecx, [ebp - 0x574]
call fcn.004342df
mov esi, eax
lea ecx, [ebp - 0x320]
lea eax, [ebp - 0x1090]
push eax
push esi
push edi
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x590]
call fcn.0041d4c4
call eax
mov ecx, esi
call fcn.004348b9
push eax
push dword [ebp - 0x1c0]
push esi
call fcn.0043423a
add esp, 0x18
mov ecx, esi
call fcn.0041d467
lea ecx, [ebp - 0x5ac]
call fcn.004342df
mov ecx, dword [ebp - 0x1c4]
mov edi, eax
shl ecx, 2
mov dword [ebp - 0x1c0], edi
call fcn.0041d3cf
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x30], eax
jge 0x413a7b
mov dword [ebp - 0x7c], 0x46
mov dword [ebp - 0x78], 0x43
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x70], 0xffffff79
movups xmm0, xmmword [ebp - 0x7c]
mov dword [ebp - 0x318], 0x3e
mov dword [ebp - 0x314], 0x374
push 0x4e
pop ecx
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x318]
inc eax
cmp eax, 2
jl 0x413838
xorps xmm1, xmm1
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
push 0xa
pop eax
add esi, eax
call fcn.0041d3cf
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x30]
mov dword [ecx + edx*4], eax
cmp dword [ebp - 0x90], esi
jne 0x413a67
push 5
pop eax
xor edx, edx
mov dword [ebp - 0x208], eax
mov ecx, edx
mov dword [ebp - 0x20c], 0x1d
mov dword [ebp - 0x204], 0xffffffde
mov eax, edx
sub ecx, dword [ebp + eax*4 - 0x20c]
inc eax
cmp eax, 3
jl 0x4138aa
mov esi, edx
mov dword [ebp - 0x6c], 0x5f
mov dword [ebp - 0x68], 6
mov eax, edx
mov dword [ebp - 0x64], 0x15
mov dword [ebp - 0x60], 0x34
mov dword [ebp - 0x5c], 0xffffff52
sub esi, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, 5
jl 0x4138de
mov eax, edx
cmp dword [ebp - 0xf8], ecx
jbe 0x41392f
and dword [0x44a384], 0xd96c6ed8
mov ecx, edx
push 5
mov dword [ebp - 0x6c], 4
mov dword [ebp - 0x68], 0x41
mov dword [ebp - 0x64], 0x1d
mov dword [ebp - 0x60], 0x2d
mov dword [ebp - 0x5c], 0xffffff71
pop edx
sub ecx, dword [ebp + eax*4 - 0x6c]
inc eax
cmp eax, edx
jl 0x413924
jmp 0x41395e
cmp byte [0x44a3a0], al
je 0x413947
inc eax
cmp eax, 0x17b8
je 0x413947
cmp byte [eax + 0x44a3a0], dl
jne 0x413937
mov eax, dword [0x44a3dc]
xor eax, 0x4de870c5
mov dword [0x44a384], eax
call fcn.00411186
mov ecx, dword [ebp - 0x34]
mov edx, edi
call fcn.00434eab
mov dword [ebp - 0x1c4], eax
cmp eax, esi
je 0x413a32
push 0xf
xor eax, eax
mov dword [ebp - 0x200], 0x5e
pop edi
mov dword [ebp - 0x1fc], 0x64
mov esi, eax
mov dword [ebp - 0x1f8], 0xffffff4c
push 0x6c
mov edx, 0x109
mov eax, 0x4020e4
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1714
ja 0x4139c1
movzx ecx, word [eax]
test ecx, ecx
jne 0x4139a5
mov edx, dword [0x44a3dc]
jmp 0x4139cd
mov edx, dword [0x44a384]
or edx, 0x1c84a71b
imul eax, edx, 0xca6b024f
mov dword [0x44a384], eax
mov eax, 0x44a3a0
or edx, 0x1034b573
push eax
push eax
mov ecx, 0x4020e4
mov dword [0x44a3dc], edx
call fcn.004112ad
sub edi, dword [ebp + esi*4 - 0x200]
inc esi
pop ecx
pop ecx
cmp esi, 3
jl 0x413998
mov esi, dword [ebp - 0x1c4]
mov ecx, esi
add dword [ebp - 0xf8], edi
call fcn.004348b9
mov ecx, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x38]
push esi
push dword [eax + ecx*4]
call fcn.004341ae
mov edi, dword [ebp - 0x1c0]
add esp, 0xc
jmp 0x413a67
xor eax, eax
mov dword [ebp - 0x1f4], 0x53
mov ecx, eax
mov dword [ebp - 0x1f0], 0x41
mov dword [ebp - 0x1ec], 0xffffff6c
sub ecx, dword [ebp + eax*4 - 0x1f4]
inc eax
cmp eax, 3
jl 0x413a54
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x30]
movups xmm0, xmmword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x3c]
jl 0x413833
mov ecx, edi
call fcn.004348b9
push eax
push dword [ebp - 0x34c]
push edi
call fcn.0043423a
mov ecx, edi
call fcn.0041d467
mov eax, dword [ebp - 0x3b0]
imul eax, dword [ebp - 0x3ac]
add eax, eax
push eax
push dword [ebp - 0x3a8]
push dword [ebp - 0x34]
call fcn.0043423a
mov ecx, dword [ebp - 0x3a4]
imul ecx, dword [ebp - 0x3a0]
add ecx, ecx
call fcn.0041d3cf
push dword [ebp - 0x108]
mov edi, dword [ebp - 0x1c8]
mov esi, eax
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
push edi
call fcn.00430699
mov eax, dword [ebp - 0x39c]
imul eax, dword [ebp - 0x398]
add eax, eax
push eax
push dword [ebp - 0x378]
push dword [ebp - 0x2c]
call fcn.0043423a
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x7dc]
push eax
lea eax, [ebp - 0x440]
mov ecx, esi
push eax
push dword [ebp - 0x2c]
call fcn.00431562
mov ecx, dword [ebp - 0x58]
mov edx, esi
call fcn.00434d6a
mov eax, dword [ebp - 0x394]
imul eax, dword [ebp - 0x380]
add eax, eax
push eax
push dword [ebp - 0x3b4]
push esi
call fcn.0043423a
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x80c]
add esp, 0x44
mov ecx, esi
push eax
lea eax, [ebp - 0x45c]
push eax
push dword [ebp - 0x2c]
call fcn.00431562
mov ecx, dword [ebp - 0x58]
mov edx, esi
call fcn.00434d6a
mov eax, dword [ebp - 0x364]
imul eax, dword [ebp - 0x360]
add eax, eax
push eax
push dword [ebp - 0x35c]
push esi
call fcn.0043423a
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x494]
mov ecx, esi
push eax
push dword [ebp - 0x2c]
call fcn.00431562
mov ecx, dword [ebp - 0x58]
mov edx, esi
call fcn.00434d6a
mov eax, dword [ebp - 0x358]
imul eax, dword [ebp - 0x354]
add eax, eax
push eax
push dword [ebp - 0x350]
push esi
call fcn.0043423a
mov edx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x4b0]
push eax
push dword [ebp - 0x2c]
mov ecx, esi
push dword [ebp - 0x34]
call fcn.004319a5
mov ecx, dword [ebp - 0x58]
mov edx, esi
call fcn.00434d6a
mov eax, dword [ebp - 0x37c]
imul eax, dword [ebp - 0x374]
add eax, eax
push eax
push dword [ebp - 0x1d8]
push esi
call fcn.0043423a
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 0xf8]
mov ecx, dword [ebp - 0x28]
add esp, 0x48
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
push dword [ebp - 0x34]
push dword [ebp - 0x108]
call fcn.00431d33
add esp, 0x14
cmp eax, dword [ebp - 0x1d0]
jne 0x414ef6
mov eax, dword [ebp - 0x1bc]
imul eax, dword [ebp - 0x1b8]
add eax, eax
push eax
push dword [ebp - 0x1b0]
push dword [ebp - 0x58]
call fcn.0043423a
mov eax, dword [ebp - 0x1ac]
imul eax, dword [ebp - 0x104]
add eax, eax
push eax
push dword [ebp - 0xbc]
push esi
call fcn.0043423a
add esp, 0x18
mov ecx, esi
call fcn.0041d467
lea ecx, [ebp - 0x4cc]
call fcn.004342df
push dword [ebp - 8]
mov esi, eax
lea ecx, [ebp - 0x328]
push esi
push dword [ebp - 0x58]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x4e8]
call fcn.0041d4c4
call eax
mov ecx, esi
call fcn.004348b9
push eax
push dword [ebp - 0x24]
push esi
call fcn.0043423a
add esp, 0x18
mov eax, 0x402144
xor edx, edx
mov ecx, edx
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1c56
jg 0x413ce0
cmp word [eax], dx
jne 0x413cc8
mov eax, dword [0x44a384]
jmp 0x413d03
mov edx, dword [0x44a384]
mov eax, 0x44a3a0
push eax
push eax
mov ecx, 0x402144
call fcn.004112ad
mov eax, dword [0x44a3dc]
pop ecx
pop ecx
add eax, 0x81f4cf6c
add eax, 0x593d57
mov dword [0x44a384], eax
add eax, 0x4719048e
mov ecx, esi
mov dword [0x44a3dc], eax
call fcn.0041d467
mov esi, dword [ebp - 0x58]
mov ecx, esi
call fcn.004348b9
mov edx, dword [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.0041b5fd
cmp dword [ebp - 0x40], 0
pop ecx
je 0x414e8c
push 0x12
pop eax
mov dword [ebp - 0x90], 0xd5d32784
mov dword [ebp - 0x404], 0x22
mov dword [ebp - 0x400], 0x45
mov dword [ebp - 0x3fc], 0x5a
mov dword [ebp - 0x3f8], 0xffffff02
mov dword [ebp - 0x414], 0x32
mov dword [ebp - 0x410], 0x1f
mov dword [ebp - 0x40c], 0x30
mov dword [ebp - 0x408], 0xffffff72
mov dword [ebp - 0x424], 0x48
mov dword [ebp - 0x420], 0x2a
mov dword [ebp - 0x41c], 0x56
mov dword [ebp - 0x418], 0x30c
mov dword [ebp - 0x3e4], 8
mov dword [ebp - 0x3e0], 0x44
mov dword [ebp - 0x3dc], 0x37
mov dword [ebp - 0x3d8], 0xffffff7d
mov dword [ebp - 0x1f4], 0x5c
mov dword [ebp - 0x1f0], 0x3d
mov dword [ebp - 0x1ec], 0x337
mov dword [ebp - 0x3f4], 0x2f
mov dword [ebp - 0x3f0], 0x1a
mov dword [ebp - 0x3ec], 0x55
mov dword [ebp - 0x3e8], 0xffffff58
mov dword [ebp - 0x200], 0x2b
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], 0xffffffc3
mov esi, 0x401b90
mov dword [ebp - 0x54], 0x4cffa898
lea edi, [ebp - 0x7c]
mov dword [ebp - 0x50], 0xa8c3de8b
push 5
pop eax
movsd dword es:[edi], dword [esi]
mov edx, 0x1f9f
push 9
mov byte [ebp - 0x4c], al
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x45], al
xor eax, eax
push 0x6c
mov dword [ebp - 0x4b], 0xef986e70
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x47], 0x66e3
mov dword [ebp - 0x44], 0x1a84a952
mov dword [ebp - 0x40], 0x1b3cb39d
movsw word es:[edi], word [esi]
mov edi, eax
mov eax, 0x4020e4
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x995
ja 0x413ebe
movzx ecx, word [eax]
test ecx, ecx
jne 0x413e9e
mov eax, dword [0x44a384]
xor eax, 0x40c316e9
jmp 0x413ef0
imul eax, dword [0x44a384], 0xa2d3817e
mov ecx, 0x402144
mov edx, dword [0x44a3dc]
mov dword [0x44a384], eax
mov eax, 0x44a3a0
push eax
push eax
call fcn.004112ad
pop ecx
pop ecx
mov eax, dword [0x44a3dc]
or eax, 0x472e653d
imul eax, eax, 0xbd8e7713
xor ecx, ecx
mov dword [0x44a384], eax
mov eax, ecx
mov byte [ebp + eax - 0x90c], al
inc eax
cmp eax, 0x100
jb 0x413eff
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x90c]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x94]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x90c]
mov byte [ebp + esi - 0x90c], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x90c], al
cmp esi, 0x100
jb 0x413f10
xor eax, eax
mov dword [ebp - 0x30], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp + edi - 0x90c]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x30], eax
mov al, byte [ebp + eax - 0x90c]
mov byte [ebp + edi - 0x90c], al
mov eax, dword [ebp - 0x30]
mov byte [ebp + eax - 0x90c], cl
movzx eax, byte [ebp + edi - 0x90c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x90c]
xor al, byte [ebp + esi - 0x54]
mov byte [ebp + esi - 0x504], al
inc esi
cmp esi, 0x18
jb 0x413f5d
push 0x12
pop eax
mov byte [ebp - 0xb4], al
xor ecx, ecx
push 0x31
pop eax
mov byte [ebp - 0xb1], al
push 0x11
pop eax
mov byte [ebp - 0xa9], al
push 0xa
pop eax
mov byte [ebp - 0xa3], al
mov eax, dword [0x4020c8]
mov dword [ebp - 0x1d0], eax
mov ax, word [0x4020cc]
mov word [ebp - 0x1cc], ax
mov eax, ecx
mov byte [ebp - 0x4ec], cl
mov dword [ebp - 0xb8], 0x649f8b5b
mov word [ebp - 0xb3], 0xd73a
mov dword [ebp - 0xb0], 0xa690d5ab
mov word [ebp - 0xac], 0x9cc0
mov byte [ebp - 0xaa], 0xdd
mov dword [ebp - 0xa8], 0x25a2389f
mov byte [ebp - 0xa4], 0x20
mov word [ebp - 0xa2], 0x10c6
mov byte [ebp + eax - 0x6ac], al
inc eax
cmp eax, 0x100
jb 0x414042
mov esi, dword [0x44a384]
mov edi, ecx
xor esi, 0xba304c1a
mov dword [ebp - 0xbc], esi
mov dword [0x44a3dc], esi
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x6ac]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x100]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x1d0]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x6ac]
mov byte [ebp + edi - 0x6ac], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x6ac], al
cmp edi, 0x100
jb 0x41406d
mov esi, dword [ebp - 0xbc]
xor eax, eax
mov ecx, eax
mov edx, eax
mov edi, eax
lea eax, [edx + 1]
mov edx, 0x2622
movzx eax, al
mov dword [ebp - 0x40], eax
mov al, byte [ebp + eax - 0x6ac]
mov byte [ebp - 1], al
movzx eax, al
add eax, ecx
mov ecx, 0x44a3a0
movzx eax, al
mov dword [ebp - 0x3c], eax
movzx eax, byte [0x44a3a0]
test eax, eax
je 0x414131
add edx, eax
inc ecx
cmp edx, 0xf5a
ja 0x414119
movzx eax, byte [ecx]
test eax, eax
jne 0x4140f5
imul edx, dword [0x44a384], 0x376307ff
mov dword [0x44a384], edx
jmp 0x414144
mov edx, esi
mov ecx, esi
call fcn.0041125d
mov eax, dword [0x44a3dc]
add eax, 0x8359314d
mov dword [0x44a384], eax
call fcn.00411186
mov edx, dword [0x44a384]
mov esi, edx
xor esi, 0xde48a2e1
imul eax, esi, 0xb1462b27
mov ecx, 0x4020e4
mov dword [0x44a3dc], eax
mov eax, 0x44a3a0
push eax
push eax
call fcn.004112ad
mov edx, dword [ebp - 0x40]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebp + ecx - 0x6ac]
mov byte [ebp + edx - 0x6ac], al
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x6ac], al
movzx ecx, byte [ebp + edx - 0x6ac]
movzx eax, al
add ecx, eax
movzx eax, cl
mov al, byte [ebp + eax - 0x6ac]
xor al, byte [ebp + edi - 0xb8]
mov byte [ebp + edi - 0x520], al
inc edi
cmp edi, 0x18
jae 0x4141b9
mov esi, dword [0x44a3dc]
mov ecx, dword [ebp - 0x3c]
jmp 0x4140c2
mov esi, 0x402068
lea edi, [ebp - 0x390]
xor ecx, ecx
mov byte [ebp - 0x508], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x7ac], al
inc eax
cmp eax, 0x100
jb 0x4141d4
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x7ac]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xa0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x390]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x7ac]
mov byte [ebp + esi - 0x7ac], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x7ac], al
cmp esi, 0x100
jb 0x4141e5
xor eax, eax
mov dword [ebp - 0x30], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp + edi - 0x7ac]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x30], eax
mov al, byte [ebp + eax - 0x7ac]
mov byte [ebp + edi - 0x7ac], al
mov eax, dword [ebp - 0x30]
mov byte [ebp + eax - 0x7ac], cl
movzx eax, byte [ebp + edi - 0x7ac]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x7ac]
xor al, byte [ebp + esi - 0x90]
mov byte [ebp + esi - 0x1a8], al
inc esi
cmp esi, 4
jb 0x414235
mov ecx, esi
call fcn.0041d467
mov ecx, dword [ebp - 0x34]
call fcn.0041d467
mov ecx, dword [ebp - 0x1a8]
call fcn.0041d467
movzx eax, byte [0x44a3a0]
mov ecx, 0xefc
test eax, eax
je 0x414ecd
mov edx, 0x44a3a0
add ecx, eax
inc edx
cmp ecx, 0x16dc
ja 0x414efa
movzx eax, byte [edx]
test eax, eax
jne 0x414ebb
mov ecx, dword [0x44a3dc]
lea eax, [ecx - 0x5975dd0c]
mov dword [0x44a384], eax
and ecx, 0x46c13f7b
mov dword [0x44a3dc], ecx
call fcn.00411186
mov ecx, edi
call fcn.0041d467
pop edi
pop esi
leave
ret
mov ecx, dword [0x44a3dc]
xor ecx, 0x42b873bb
jmp 0x414ed3