Function at 0x40870a
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f8
push 0x21
mov dword [ebp - 0x14], edx
xor eax, eax
mov dword [ebp - 0x20], ecx
pop edx
mov dword [ebp - 0x80], 5
mov dword [ebp - 0x7c], 0x2e
mov dword [ebp - 0x78], 0xffffffb0
add edx, dword [ebp + eax*4 - 0x80]
inc eax
cmp eax, 3
jl 0x408733
mov dword [ebp - 0x34], 0xf
xorps xmm1, xmm1
mov dword [ebp - 0x30], 0x56
mov dword [ebp - 0x2c], 0x31
mov dword [ebp - 0x28], 0xffffff73
movups xmm0, xmmword [ebp - 0x34]
push esi
push edi
psubd xmm1, xmm0
mov esi, dword [0x44a14c]
movaps xmm0, xmm1
mov dword [ebp - 0x30], 0xd
psrldq xmm0, 8
mov edi, esi
paddd xmm1, xmm0
mov dword [ebp - 0x2c], 0x60
movups xmm0, xmm1
mov dword [ebp - 0x28], 0xffffff41
psrldq xmm0, 4
and edi, 0x784c0391
paddd xmm1, xmm0
mov dword [ebp - 0x10], esi
push 0xa
pop eax
mov dword [ebp - 0x34], eax
movd ecx, xmm1
movups xmm1, xmmword [ebp - 0x34]
push 0x4f
add ecx, eax
mov dword [0x44a024], edi
add cl, byte [0x44bb28]
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movzx ecx, cl
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x48
mov dword [ebp - 0x18], eax
movzx eax, dl
imul ecx, eax
mov eax, dword [ebp - 0x18]
movzx eax, al
mov dword [ebp - 0x1c], eax
pop edx
mov dword [ebp - 0x84], ecx
cmp eax, dword [0x44bb24]
jge 0x408e20
push 0xf
pop eax
push 0x1d
mov dword [ebp - 0x34], eax
pop ecx
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x30], 0x27
mov dword [ebp - 0x2c], 0x51
mov dword [ebp - 0x28], 0xffffff9d
movups xmm2, xmmword [ebp - 0x34]
mov dword [ebp - 0xf0], eax
mov eax, dword [0x44a150]
mov dword [ebp - 0x140], 0x64
mov dword [ebp - 0x13c], 0x5b
mov dword [ebp - 0x138], 6
mov dword [ebp - 0x134], 0xffffff2f
movups xmm6, xmmword [ebp - 0x140]
mov dword [ebp - 0x130], 0x25
mov dword [ebp - 0x12c], 0x40
mov dword [ebp - 0x128], 0x11
mov dword [ebp - 0x124], 0xffffff52
movups xmm7, xmmword [ebp - 0x130]
mov dword [ebp - 0x120], 0x36
mov dword [ebp - 0x11c], 0x62
mov dword [ebp - 0x118], 0x28
mov dword [ebp - 0x114], 0xffffff60
movups xmm3, xmmword [ebp - 0x120]
mov dword [ebp - 0x110], 0xe
mov dword [ebp - 0x108], 0x5c
mov dword [ebp - 0x104], 0xffffff7e
movups xmm4, xmmword [ebp - 0x110]
mov dword [ebp - 0x100], 0x2f
mov dword [ebp - 0xfc], 0x5a
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], 0xffffff50
movups xmm5, xmmword [ebp - 0x100]
mov dword [ebp - 0x9c], 2
mov dword [ebp - 0x98], 0xffffffe0
mov dword [ebp - 0x80], 3
mov dword [ebp - 0x7c], 0x2a
mov dword [ebp - 0x78], 0xffffffd3
mov dword [ebp - 0xec], 0x55
mov dword [ebp - 0xe8], 0x48
mov dword [ebp - 0xe4], 0xffffff19
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], 0xffffffcb
mov dword [ebp - 0xe0], 0x4d
mov dword [ebp - 0xdc], 0x1c
mov dword [ebp - 0xd8], 0xffffffa3
mov dword [ebp - 0xb0], 0x44
mov dword [ebp - 0xac], 0x56
mov dword [ebp - 0xa8], 0xffffff1a
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd0], 0x59
mov dword [ebp - 0xcc], 0xffffff70
mov dword [ebp - 0xc8], 0x61
mov dword [ebp - 0xc4], 0x23
mov dword [ebp - 0xc0], 0xffffffa8
mov dword [ebp - 0xbc], 0x16
mov dword [ebp - 0xb8], 0x35
mov dword [ebp - 0xb4], 0xffffff5f
mov dword [ebp - 8], eax
mov al, byte [0x44a060]
mov ecx, 0x44a060
jmp 0x408a1a
sub al, 0x30
cmp al, 9
ja 0x408a20
inc ecx
mov al, byte [ecx]
test al, al
jne 0x408a11
jmp 0x408a28
mov esi, edi
and esi, 0xfc0b2f19
mov edx, esi
push 0x22
and edx, 0xc3371139
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, 2
jl 0x408a35
mov dword [ebp - 0x40], ecx
xor ecx, ecx
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x80]
inc eax
cmp eax, 3
jl 0x408a49
xorps xmm1, xmm1
mov dword [ebp - 0x44], ecx
psubd xmm1, xmm2
mov ecx, 0x44a160
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x28
mov dword [ebp - 0x38], eax
mov al, byte [0x44a160]
jmp 0x408a94
sub al, 0x30
cmp al, 9
ja 0x408a9a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x408a8b
jmp 0x408aa3
lea eax, [edx + 0x3d4717a0]
mov dword [ebp - 8], eax
mov edi, esi
mov edx, 0x401330
xor edi, 0xf7993382
call fcn.00404606
movaps xmm1, xmm6
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movaps xmm1, xmm7
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
add eax, 0xc
movups xmm0, xmm1
mov dword [ebp - 0x3c], eax
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0xf0]
push 0x1c
add eax, 0x3c
movaps xmm0, xmm1
mov dword [ebp - 0x50], eax
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x3c
mov dword [ebp - 0x54], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x8c]
inc eax
cmp eax, 2
jl 0x408b2d
push 0xd
mov dword [ebp - 0x48], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0xe0]
inc eax
cmp eax, 3
jl 0x408b42
mov dword [ebp - 0x4c], ecx
mov edx, 0x1590
movzx ecx, byte [0x44a060]
mov eax, 0x44a060
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x408b90
add edx, ecx
inc eax
cmp edx, 0x423
ja 0x408b7e
movzx ecx, byte [eax]
test ecx, ecx
jne 0x408b6a
jmp 0x408b9a
mov edx, 0x401350
call fcn.00404606
mov edi, esi
or edi, 0x56cad0c4
mov edx, 0x401370
call fcn.00404606
xorps xmm1, xmm1
lea esi, [edi - 0x3e30841c]
psubd xmm1, xmm3
xor esi, 0xa7dfbe36
movaps xmm0, xmm1
mov edx, 0x1cee
psrldq xmm0, 8
mov ecx, 0x44a160
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x24
mov dword [ebp - 0x60], eax
movzx eax, byte [0x44a160]
jmp 0x408bf0
add edx, eax
inc ecx
cmp edx, 0x1e77
ja 0x408bf6
movzx eax, byte [ecx]
test eax, eax
jne 0x408be2
jmp 0x408c12
imul esi, dword [ebp - 8], 0x7d49dd4a
sub esp, 0xc
mov edx, 0x44a160
mov ecx, 0x401390
call fcn.004044b0
add esp, 0xc
add edi, 0xe7cf0b1
mov dword [0x44a024], edi
mov edx, 0x4013d0
call fcn.00404606
movups xmm1, xmm4
xor esi, 0x909448c2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm5
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0xb
paddd xmm1, xmm0
mov dword [ebp - 0x64], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 0x4e
movd eax, xmm1
pop ecx
push 3
add eax, 0x2c
mov dword [ebp - 0x58], eax
xor eax, eax
pop edx
add ecx, dword [ebp + eax*4 - 0xb0]
inc eax
cmp eax, edx
jl 0x408c84
push 0x1e
mov dword [ebp - 0x5c], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xd4]
inc eax
cmp eax, edx
jl 0x408c98
push 0x27
mov dword [ebp - 0x70], ecx
xor eax, eax
pop ecx
mov dword [ebp - 0x154], 0x19
mov dword [ebp - 0x150], 0x48
mov dword [ebp - 0x14c], 0x18
mov dword [ebp - 0x148], 0x61
mov dword [ebp - 0x144], 0xffffff4a
sub ecx, dword [ebp + eax*4 - 0x154]
inc eax
cmp eax, 5
jl 0x408cde
push 0x30
mov dword [ebp - 0x74], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0xc8]
inc eax
cmp eax, edx
jl 0x408cf3
push 0x59
mov dword [ebp - 0x68], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, edx
jl 0x408d07
mov edx, dword [ebp - 0x24]
mov eax, 0x44a060
mov dword [ebp - 0x6c], ecx
mov ecx, 0xbcc
jmp 0x408d33
add ecx, edx
inc eax
cmp ecx, 0x8b3
ja 0x408d39
movzx edx, byte [eax]
test edx, edx
jne 0x408d25
jmp 0x408d54
sub esp, 0xc
mov edx, 0x44a060
mov ecx, 0x4013f0
call fcn.004044b0
add esp, 0xc
xor esi, 0xd224d54d
xor esi, 0xb65326d4
mov eax, esi
mov dword [ebp - 8], esi
mov dword [0x44a150], eax
sub esp, 0xc
or esi, 0xb20c2e9d
mov edx, 0x44a160
mov dword [ebp - 0x10], esi
mov ecx, 0x401410
mov dword [0x44a14c], esi
call fcn.004044b0
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov esi, dword [ebp - 0x20]
mov eax, edx
imul eax, dword [ebp - 0x38]
mov ecx, edx
imul ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x44]
mov al, byte [eax + esi]
mov byte [ecx + edi], al
mov eax, edx
imul eax, dword [ebp - 0x48]
mov ecx, edx
imul ecx, dword [ebp - 0x50]
add eax, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x54]
mov al, byte [eax + esi]
mov byte [ecx + edi], al
mov eax, edx
imul eax, dword [ebp - 0x58]
mov ecx, edx
imul ecx, dword [ebp - 0x60]
add eax, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x64]
mov al, byte [eax + esi]
mov esi, edi
mov edi, dword [0x44a024]
mov byte [ecx + esi], al
mov eax, edx
imul eax, dword [ebp - 0x68]
imul edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x20]
add eax, dword [ebp - 0x6c]
add edx, dword [ebp - 0x74]
mov al, byte [eax + ecx]
mov byte [edx + esi], al
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
inc al
mov dword [ebp - 0x18], eax
movzx eax, al
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x44bb24]
jl 0x408a05
mov ecx, dword [ebp - 0x84]
push 0x4f
pop edx
mov al, byte [0x44bb24]
mov byte [ebp - 9], al
cmp al, cl
jae 0x409bbe
push 0x4d
pop ecx
push 0x4b
pop eax
push 0x10
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x1c4], eax
pop eax
push 0x2b
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x1d8], ecx
pop ecx
push 0x1b
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x20c], eax
pop eax
push 0x1a
mov dword [ebp - 0x1b4], edx
mov dword [ebp - 0xb8], edx
pop edx
push 0x4a
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0xf8], eax
pop eax
mov dword [ebp - 0x1b8], 0x5a
mov dword [ebp - 0x1b0], 0xffffff53
mov dword [ebp - 0xa4], 0x3a
mov dword [ebp - 0xa0], 0x27
mov dword [ebp - 0x9c], 0x24
mov dword [ebp - 0x98], 0xffffff93
mov dword [ebp - 0x8c], 0x61
mov dword [ebp - 0x88], 0xffffff12
mov dword [ebp - 0x1bc], 0xffffffa5
mov dword [ebp - 0x204], 0x4b
mov dword [ebp - 0x200], 0x1e
mov dword [ebp - 0x1fc], 0x1c
mov dword [ebp - 0x1f8], 0xffffff83
mov dword [ebp - 0x1a4], 0x4c
mov dword [ebp - 0x1a0], 0xffffff6f
mov dword [ebp - 0x1d0], 0x20
mov dword [ebp - 0x1cc], 0x24
mov dword [ebp - 0x1c8], 0xffffffa8
mov dword [ebp - 0x1dc], 0x22
mov dword [ebp - 0x1d4], 0xffffff9c
mov dword [ebp - 0x214], 0x5b
mov dword [ebp - 0x210], 0x30
mov dword [ebp - 0x208], 0xffffff35
mov dword [ebp - 0x1ac], 0x47
mov dword [ebp - 0x1a8], 0xffffff5f
mov dword [ebp - 0x1e8], 1
mov dword [ebp - 0x1e4], 0x1c
mov dword [ebp - 0x1e0], 0xffffffef
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], 0x29
mov dword [ebp - 0x218], 0xffffffb8
mov dword [ebp - 0xb4], 0xffffff54
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x30], 0x35
mov dword [ebp - 0x2c], 0x3e
mov dword [ebp - 0x28], 0xffffff62
mov dword [ebp - 0xc4], 0x3d
mov dword [ebp - 0xc0], 0xffffffac
mov dword [ebp - 0x234], 0x51
mov dword [ebp - 0x230], 0x5d
mov dword [ebp - 0x22c], 0x36
mov dword [ebp - 0x228], 0xffffff6a
mov dword [ebp - 0x1f4], 0x4b
mov dword [ebp - 0x1f0], 0x64
mov dword [ebp - 0x1ec], 0xffffff43
mov dword [ebp - 0xec], 0x24
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xe4], 0xfffffff6
mov dword [ebp - 0x244], 0xa
mov dword [ebp - 0x240], 0x15
mov dword [ebp - 0x23c], 0x53
mov dword [ebp - 0x238], 0xffffffa6
mov dword [ebp - 0xfc], 0x14
mov dword [ebp - 0xf4], 0xffffff97
mov dword [ebp - 0x254], 0x23
mov dword [ebp - 0x250], 4
mov dword [ebp - 0x24c], eax
movups xmm5, xmmword [ebp - 0xa4]
push 0x59
movups xmm6, xmmword [ebp - 0x94]
mov dword [ebp - 0x118], eax
movups xmm3, xmmword [ebp - 0x204]
mov dword [ebp - 0x270], eax
movups xmm4, xmmword [ebp - 0x214]
pop eax
movups xmm7, xmmword [ebp - 0x224]
mov dword [ebp - 0x248], 0xffffff3f
movups xmm2, xmmword [ebp - 0x34]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], 0xffffffad
mov dword [ebp - 0x10c], 0x4e
mov dword [ebp - 0x108], 0xc
mov dword [ebp - 0x104], 0xffffff58
mov dword [ebp - 0x11c], 3
mov dword [ebp - 0x114], 0xffffffc1
mov dword [ebp - 0x12c], 0x1c
mov dword [ebp - 0x128], 0x4f
mov dword [ebp - 0x124], 0xffffff9f
mov dword [ebp - 0x264], 0x54
mov dword [ebp - 0x260], 0x38
mov dword [ebp - 0x25c], 0x30
mov dword [ebp - 0x258], 0xffffff74
mov dword [ebp - 0x274], 0x2c
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], 0xffffff3d
mov dword [ebp - 0xac], 0x1d
mov dword [ebp - 0xa8], 0xffffffc6
mov dword [ebp - 0x284], 0x18
mov dword [ebp - 0x280], 0x3f
mov dword [ebp - 0x27c], 0x21
mov dword [ebp - 0x278], 0xffffff9e
mov dword [ebp - 0xdc], 0x4c
mov dword [ebp - 0xd8], 0xffffff7d
mov dword [ebp - 0x7c], 0x33
mov dword [ebp - 0x78], 0xffffff73
mov dword [ebp - 0x294], 0x13
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x28c], 0x34
mov dword [ebp - 0x288], 0xffffff22
mov dword [ebp - 0x13c], 0x40
mov dword [ebp - 0x138], 0x31
mov dword [ebp - 0x134], 0xffffffa7
mov dword [ebp - 0x150], 0xb
mov dword [ebp - 0x14c], 0x32
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], 0xffffffca
push 4
pop ecx
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x1b8]
inc eax
cmp eax, 3
jl 0x40924e
xorps xmm1, xmm1
and dword [ebp - 0x20], 0
psubd xmm1, xmm5
mov dword [ebp - 0x6c], ecx
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm6
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0x1c
paddd xmm1, xmm0
mov dword [ebp - 0x70], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0xc
mov dword [ebp - 0x74], eax
xor eax, eax
cmp byte [0x44a060], al
je 0x4092ef
inc eax
cmp eax, 0xf14
jg 0x4092d1
cmp byte [eax + 0x44a060], 0
jne 0x4092be
jmp 0x4092ef
sub esp, 0xc
mov edx, 0x44a160
mov ecx, 0x401420
call fcn.004044b0
lea esi, [edi - 0x53debd50]
add esp, 0xc
mov dword [ebp - 0x10], esi
mov edi, esi
mov edx, 0x4011b0
xor edi, 0x61c5e17a
call fcn.00404606
mov ecx, dword [ebp - 0x20]
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x1c4]
inc eax
cmp eax, 3
jl 0x409306
xorps xmm1, xmm1
mov dword [ebp - 0x20], ecx
psubd xmm1, xmm3
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x49
pop ecx
add eax, 9
mov dword [ebp - 0x5c], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x1a4]
inc eax
cmp eax, 2
jl 0x409344
push 0x15
mov dword [ebp - 0x64], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x1d0]
inc eax
cmp eax, 3
jl 0x409359
push 0xc
mov dword [ebp - 0x68], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0x1dc]
inc eax
cmp eax, 3
jl 0x40936e
movups xmm1, xmm4
mov dword [ebp - 0x60], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x2a8], 0x4b
psrldq xmm0, 8
and edi, 0x76d9b879
paddd xmm1, xmm0
mov dword [0x44a150], edi
movups xmm0, xmm1
mov dword [ebp - 0x2a4], 0x59
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x2a0], 0x16
movd eax, xmm1
push 0x1c
pop ecx
add eax, 0x32
mov dword [ebp - 0x29c], 0x23
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x298], 0xffffff3b
sub ecx, dword [ebp + eax*4 - 0x2a8]
inc eax
cmp eax, 5
jl 0x4093e6
push 0x5b
mov dword [ebp - 0x54], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x1ac]
inc eax
cmp eax, 2
jl 0x4093fb
push 0xe
mov dword [ebp - 0x58], ecx
pop ecx
mov dword [ebp - 0x24], ecx
sub esp, 0xc
mov edx, 0x44a060
mov ecx, 0x401390
call fcn.004044b0
mov eax, edi
add esp, 0xc
xor esi, esi
or eax, 0xb7230927
mov dword [ebp - 0x18], eax
mov al, byte [0x44a160]
mov byte [ebp - 1], al
jmp 0x409442
mov edi, dword [0x44a150]
mov ecx, 0x44a160
jmp 0x409456
sub al, 0x30
cmp al, 9
ja 0x40958a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x409449
mov edi, dword [ebp - 0x10]
mov edx, 0x401430
call fcn.00404606
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp + esi*4 - 0x1e8]
inc esi
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 1]
cmp esi, 3
jl 0x40943c
xorps xmm1, xmm1
mov dword [ebp - 0x2bc], 0xf
psubd xmm1, xmm7
mov dword [ebp - 0x2b8], 0x63
movaps xmm0, xmm1
mov dword [ebp - 0x2b4], 0x3c
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x2ac], 0xffffff54
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 0x2a
pop edx
movd eax, xmm1
push 0x30
pop ecx
add eax, edx
mov dword [ebp - 0x2b0], edx
mov dword [ebp - 0x40], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x2bc]
inc eax
cmp eax, 5
jl 0x4094db
push 0x5e
mov dword [ebp - 0x48], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xb8]
inc eax
cmp eax, 2
jl 0x4094f0
movups xmm1, xmm2
mov dword [ebp - 0x4c], ecx
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x17
pop ecx
add eax, 0x26
mov dword [ebp - 0x44], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xc4]
inc eax
cmp eax, 2
jl 0x40952a
movups xmm0, xmmword [ebp - 0x234]
mov dword [ebp - 0x3c], ecx
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 eax, xmm1
push 0x12
pop esi
add eax, 0x54
xor edx, edx
mov dword [ebp - 0x1c], eax
mov al, byte [ebp - 1]
mov ecx, 0x44a160
test al, al
je 0x4095a4
sub al, 0x30
cmp al, 9
ja 0x409598
inc ecx
mov al, byte [ecx]
test al, al
jne 0x40957b
jmp 0x4095a1
add edi, 0x85c64588
mov dword [ebp - 0x10], edi
jmp 0x40945d
mov edi, dword [ebp - 0x18]
and edi, 0xab50cb77
mov al, byte [ebp - 1]
add esi, dword [ebp + edx*4 - 0x1f4]
imul ecx, edi, 0xfc179964
inc edx
mov dword [ebp - 0x18], ecx
cmp edx, 3
jl 0x409572
push 0x38
pop ecx
push 3
mov dword [ebp - 0x160], esi
xor eax, eax
pop edi
sub ecx, dword [ebp + eax*4 - 0xec]
inc eax
cmp eax, edi
jl 0x4095c8
mov dword [ebp - 0x170], ecx
xor ecx, ecx
mov dword [ebp - 0x2d0], 0x63
xor eax, eax
mov dword [ebp - 0x2cc], 0x28
mov dword [ebp - 0x2c8], 4
mov dword [ebp - 0x2c4], 0x1d
mov dword [ebp - 0x2c0], 0xffffff54
sub ecx, dword [ebp + eax*4 - 0x2d0]
inc eax
cmp eax, 5
jl 0x409610
movups xmm0, xmmword [ebp - 0x244]
mov dword [ebp - 0x19c], ecx
xor ecx, ecx
xorps xmm1, xmm1
mov dword [ebp - 0x2e4], 0x42
psubd xmm1, xmm0
mov dword [ebp - 0x2dc], 0xb
movaps xmm0, xmm1
mov dword [ebp - 0x2d8], 0x3b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x2d4], 0xffffff76
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 2
pop edx
add eax, 0x1c
mov dword [ebp - 0x2e0], edx
mov dword [ebp - 0x164], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x2e4]
inc eax
cmp eax, 5
jl 0x40968b
push 0x3a
mov dword [ebp - 0x168], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xfc]
inc eax
cmp eax, edi
jl 0x4096a3
movups xmm1, xmmword [ebp - 0x254]
push 0x29
mov dword [ebp - 0x16c], ecx
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, 0x54
mov dword [ebp - 0x180], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xd0]
inc eax
cmp eax, edx
jl 0x4096e6
push 0x52
mov dword [ebp - 0x184], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x10c]
inc eax
cmp eax, edi
jl 0x4096fd
push 0xf
mov dword [ebp - 0x178], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0x11c]
inc eax
cmp eax, edi
jl 0x409714
movzx esi, byte [ebp - 1]
mov edx, 0x214b
mov dword [ebp - 0x17c], ecx
mov eax, 0x44a160
mov dword [ebp - 0x38], esi
mov ecx, esi
test esi, esi
je 0x40975b
add edx, ecx
inc eax
cmp edx, 0x19fa
ja 0x409751
movzx ecx, byte [eax]
test ecx, ecx
jne 0x40973d
jmp 0x40975b
mov edx, 0x4014d0
call fcn.00404606
mov esi, dword [ebp - 0x18]
mov edx, 0x401524
or esi, 0xf665ce3
mov dword [ebp - 0x10], esi
call fcn.00404606
push 0xb
xor eax, eax
and esi, 0xb8676eb5
pop ecx
sub ecx, dword [ebp + eax*4 - 0x12c]
inc eax
cmp eax, edi
jl 0x40977c
movups xmm0, xmmword [ebp - 0x264]
mov dword [ebp - 0x18], ecx
xorps xmm1, xmm1
mov cl, byte [ebp - 1]
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x274]
movd eax, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0x34
paddd xmm1, xmm0
mov dword [ebp - 0x194], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0xe
mov dword [ebp - 0x198], eax
mov eax, 0x44a160
jmp 0x40980a
sub cl, 0x30
cmp cl, 9
ja 0x4099d4
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x4097fb
mov edx, dword [0x44a150]
push 0x21
pop ecx
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xac]
inc eax
cmp eax, 2
jl 0x409819
movups xmm0, xmmword [ebp - 0x284]
mov dword [ebp - 0x188], ecx
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 eax, xmm1
push 0x39
pop ecx
add eax, 0x18
mov dword [ebp - 0x18c], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xdc]
inc eax
cmp eax, 2
jl 0x409864
push 0x30
mov dword [ebp - 0x190], ecx
xor eax, eax
pop ecx
mov dword [ebp - 0x2f8], 0xf
mov dword [ebp - 0x2f4], 0x49
mov dword [ebp - 0x2f0], 4
mov dword [ebp - 0x2ec], 0x2c
mov dword [ebp - 0x2e8], 0xffffffa4
sub ecx, dword [ebp + eax*4 - 0x2f8]
inc eax
cmp eax, 5
jl 0x4098ae
push 0x5d
mov dword [ebp - 0x88], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x7c]
inc eax
cmp eax, 2
jl 0x4098c6
movups xmm1, xmmword [ebp - 0x294]
push 0x1b
mov dword [ebp - 0x98], ecx
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, 0x42
mov dword [ebp - 0x174], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x13c]
inc eax
cmp eax, edi
jl 0x409907
movups xmm0, xmmword [ebp - 0x150]
movzx esi, byte [ebp - 9]
lea edi, [edx + 0xc35abf8]
mov edx, dword [ebp - 0x14]
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [ebp - 0x158], ecx
movaps xmm0, xmm1
mov ecx, dword [ebp - 0x6c]
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x24
mov dword [ebp - 0x15c], eax
mov eax, esi
sub eax, dword [ebp - 0x74]
imul eax, dword [ebp - 0x70]
add eax, dword [ebp - 0x20]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 8], al
mov eax, esi
sub eax, dword [ebp - 0x68]
imul eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x5c]
add eax, dword [ebp - 0x60]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 8], al
mov eax, esi
sub eax, dword [ebp - 0x58]
imul eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
add eax, dword [ebp - 0x24]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 8], al
mov eax, esi
sub eax, dword [ebp - 0x4c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
add eax, dword [ebp - 0x44]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 8], al
mov eax, esi
mov ecx, dword [0x44bb24]
cdq
idiv ecx
cmp edx, dword [ebp - 0x3c]
jne 0x409a55
mov edx, dword [ebp - 0x38]
mov ecx, 0x22fa
mov eax, 0x44a160
jmp 0x4099f5
mov edx, esi
and edx, 0x37723beb
mov dword [0x44a150], edx
jmp 0x409814
add ecx, edx
inc eax
cmp ecx, 0x117e
ja 0x409a48
movzx edx, byte [eax]
test edx, edx
jne 0x4099e7
mov eax, dword [0x44a150]
xor eax, 0x2d9977b4
mov dword [ebp - 0x10], eax
or eax, 0x1015fcb
lea ecx, [ebp - 8]
mov dword [0x44a150], eax
call fcn.004084fb
mov edx, dword [ebp + 8]
lea ecx, [ebp - 8]
call fcn.00408481
lea eax, [ebp - 8]
push eax
mov eax, esi
cdq
idiv dword [0x44bb24]
mov cl, al
call fcn.00406517
mov edx, eax
lea ecx, [ebp - 8]
call fcn.0040471c
movups xmm2, xmmword [ebp - 0x34]
pop ecx
jmp 0x409a6f
mov eax, dword [0x44a150]
lea edi, [eax - 0x49404611]
jmp 0x4099fe
mov eax, ecx
cmp ecx, dword [ebp - 0x1c]
jle 0x409a74
cmp edx, dword [ebp - 0x160]
jne 0x409a74
mov edx, dword [ebp + 8]
lea ecx, [ebp - 8]
call fcn.00408481
mov eax, dword [0x44bb24]
mov ecx, dword [ebp - 0x14]
mov edx, esi
sub edx, eax
imul edi, edi, 0x2cd7132f
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x1c], edx
imul edx, dword [ebp - 0x164]
add edx, dword [ebp - 0x168]
mov cl, byte [edx + ecx]
xor cl, byte [ebp + eax - 8]
mov eax, esi
imul eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14]
add eax, dword [ebp - 0x19c]
mov byte [eax + edx], cl
mov ecx, edx
mov eax, dword [ebp - 0x178]
imul eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x17c]
mov cl, byte [eax + ecx]
mov eax, dword [ebp - 0x18]
xor cl, byte [ebp + eax - 8]
mov eax, esi
imul eax, dword [ebp - 0x180]
add eax, dword [ebp - 0x184]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0x188]
imul eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18c]
mov cl, byte [eax + edx]
mov eax, dword [ebp - 0x190]
xor cl, byte [ebp + eax - 8]
mov eax, esi
imul eax, dword [ebp - 0x194]
add eax, dword [ebp - 0x198]
mov byte [eax + edx], cl
xor eax, eax
cmp byte [0x44a160], al
je 0x409b41
inc eax
cmp eax, 0x7a2
jl 0x409b2d
cmp byte [eax + 0x44a160], 0
jne 0x409b1a
jmp 0x409b41
mov edx, 0x401530
call fcn.00404606
sub dword [0x44a150], 0xb2ba8e4
mov eax, dword [ebp - 0x10]
or eax, 0xce60c8be
mov dword [ebp - 0x10], eax
mov dword [0x44a14c], eax
sub esp, 0xc
mov edx, 0x44a160
mov ecx, 0x401580
or edi, 0x410cbfbd
call fcn.004044b0
mov edx, dword [ebp - 0x14]
mov eax, esi
sub eax, dword [0x44bb24]
add esp, 0xc
imul eax, dword [ebp - 0x174]
imul esi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x15c]
add eax, dword [ebp - 0x158]
add esi, dword [ebp - 0x98]
mov al, byte [eax + edx]
xor al, byte [ebp + ecx - 8]
mov byte [esi + edx], al
mov dl, byte [ebp - 9]
mov esi, dword [ebp - 0x10]
inc dl
mov byte [ebp - 9], dl
cmp dl, byte [ebp - 0x84]
jb 0x409249
mov dword [0x44a024], edi
pop edi
pop esi
leave
ret