Function at 0x40843c
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
mov dword [ebp - 0x64], 0x5f
xorps xmm1, xmm1
mov dword [ebp - 0x60], 0x53
mov dword [ebp - 0x5c], 0x31
mov dword [ebp - 0x58], 0xffffff45
movups xmm0, xmmword [ebp - 0x64]
push ebx
push esi
psubd xmm1, xmm0
mov dword [ebp - 8], edx
imul edx, dword [0x44d0e8], 0x7cfae877
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x1c], ecx
movups xmm0, xmm1
mov dword [ebp - 0x18], 0x10
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x14], 0xffffffcc
push edi
movd ebx, xmm1
push 0x25
pop ecx
add ebx, 0x2c
mov dword [0x44d0e8], edx
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 2
jl 0x4084b7
push 0x4d
mov dword [ebp - 0x18], 0x22
xor eax, eax
mov dword [ebp - 0x14], 0xffffff91
pop esi
add esi, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 2
jl 0x4084d4
add cl, byte [0x44ef28]
movzx eax, bl
mov ebx, dword [0x44ef24]
push 0x36
movzx ecx, cl
imul ecx, eax
mov eax, esi
mov dword [ebp - 0xc], esi
pop esi
push 4
pop edi
mov dword [ebp - 0x68], ecx
movzx ecx, al
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ebx
push 0xf
pop eax
cmp ecx, ebx
jge 0x408a5e
mov dword [ebp - 0xc8], 0x58
mov dword [ebp - 0xc4], 0x41
mov dword [ebp - 0xc0], 0x1f
mov dword [ebp - 0xbc], 0xffffff15
movups xmm0, xmmword [ebp - 0xc8]
mov dword [ebp - 0x18], 0x4b
mov dword [ebp - 0x14], 0xffffff65
mov dword [ebp - 0xe4], 0x37
mov dword [ebp - 0xe0], 0x62
mov dword [ebp - 0xdc], 0xffffff8f
mov dword [ebp - 0xf0], 0x57
mov dword [ebp - 0xec], 0x15
mov dword [ebp - 0xe8], 0xffffffa0
mov dword [ebp - 0xd8], 0x3e
mov dword [ebp - 0xd4], 0xffffff6c
mov dword [ebp - 0x64], 0xa
mov dword [ebp - 0x60], 7
mov dword [ebp - 0x5c], 0x21
mov dword [ebp - 0x58], 0xffffffd8
mov dword [ebp - 0x88], 0x51
mov dword [ebp - 0x84], 0x24
mov dword [ebp - 0x80], 0x19
mov dword [ebp - 0x7c], 0xffffff67
mov dword [ebp - 0x98], 0x5c
mov dword [ebp - 0x94], 0x44
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], 0xffffff40
mov dword [ebp - 0xa8], 0x27
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xa0], 0x23
mov dword [ebp - 0x9c], 0xffffffe2
mov dword [ebp - 0xfc], 0x20
mov dword [ebp - 0xf8], 0x38
mov dword [ebp - 0xf4], 0xffffff61
mov dword [ebp - 0xb8], 0x3b
mov dword [ebp - 0xb4], 0x5d
mov dword [ebp - 0xb0], 0x2d
mov dword [ebp - 0xac], 0xffffff0f
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], 0x45
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], 0xffffff27
mov dword [ebp - 0xd0], 0x56
mov dword [ebp - 0xcc], 0xffffffa9
jmp 0x40869b
push 4
pop edi
push 0x34
pop ecx
mov dword [ebp - 0x110], 0xa
xor eax, eax
mov dword [ebp - 0x10c], 0x60
mov dword [ebp - 0x108], 3
mov dword [ebp - 0x104], 0x18
mov dword [ebp - 0x100], 0xffffffab
sub ecx, dword [ebp + eax*4 - 0x110]
inc eax
cmp eax, 5
jl 0x4086d2
movaps xmm1, xmm0
mov dword [ebp - 0x24], ecx
psrldq xmm0, 8
mov ecx, 0x401440
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 0x62
movd eax, xmm1
pop esi
push 9
add eax, 0x33
mov dword [ebp - 0x28], eax
pop ebx
lea eax, [esi - 0x30]
cmp ax, bx
ja 0x408726
add ecx, 2
movzx eax, word [ecx]
mov esi, eax
test ax, ax
jne 0x40870f
jmp 0x40872c
and edx, 0x251c0d38
push 0x54
sub edx, 0x6a5f2780
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 2
jl 0x408737
mov dword [ebp - 0x10], ecx
sub edx, 0x318cd6b8
xor ecx, ecx
mov dword [ebp - 0x138], 0x47
mov dword [ebp - 0x134], 0x3c
xor eax, eax
mov dword [ebp - 0x130], 0x13
mov dword [ebp - 0x12c], 0x23
mov dword [ebp - 0x128], 0xffffff47
sub ecx, dword [ebp + eax*4 - 0x138]
inc eax
cmp eax, 5
jl 0x408780
push 0x2c
mov dword [ebp - 0x20], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0xe4]
inc eax
cmp eax, 3
jl 0x408795
push 0xd
mov dword [ebp - 0x34], ecx
and edx, 0x71ba6661
pop ecx
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0xf0]
inc eax
cmp eax, 3
jl 0x4087b0
push 0x5a
mov dword [ebp - 0x38], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xd8]
inc eax
cmp eax, 2
jl 0x4087c5
push 0xb
mov dword [ebp - 0x2c], ecx
xor esi, esi
pop ebx
mov al, byte [str.SECURITY]
mov ecx, str.SECURITY
jmp 0x4087ef
sub al, 0x30
cmp al, 9
ja 0x4087f5
inc ecx
mov al, byte [ecx]
test al, al
jne 0x4087e6
jmp 0x4087fb
and edx, 0x4b2f86b8
sub esp, 0xc
or edx, 0x5d38253e
mov dword [0x44d0e8], edx
call fcn.0040418f
sub ebx, dword [ebp + esi*4 - 0x64]
add esp, 0xc
inc esi
cmp esi, edi
jge 0x408823
mov edx, dword [0x44d0e8]
jmp 0x4087da
mov esi, dword [0x44d0e8]
xor eax, eax
push 0xf
mov dword [ebp - 0x30], ebx
add esi, 0x71770a30
pop ecx
add ecx, dword [ebp + eax*4 - 0x88]
inc eax
cmp eax, edi
jl 0x408837
movups xmm0, xmmword [ebp - 0x98]
mov dword [ebp - 0x44], ecx
or esi, 0x49ebbd74
xorps xmm1, xmm1
mov edx, 0x1fa5
psubd xmm1, xmm0
mov ecx, str.ModuleCollection
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x18
mov dword [ebp - 0x48], eax
movzx eax, byte [str.ModuleCollection]
jmp 0x40889d
add edx, eax
inc ecx
cmp edx, 0x11c1
ja 0x4088a3
movzx eax, byte [ecx]
test eax, eax
jne 0x40888f
jmp 0x4088ae
call fcn.0040406a
or esi, 0x542863d3
or esi, 0x63a0035a
imul eax, esi, 0xfbbd5f3e
mov dword [0x44d0e8], eax
call fcn.00403e10
movups xmm0, xmmword [ebp - 0xa8]
mov edx, dword [0x44d0e8]
xorps xmm1, xmm1
add edx, 0xcbdca13
psubd xmm1, xmm0
mov dword [ebp - 0x54], edx
movaps xmm0, xmm1
mov dword [0x44d0e8], edx
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x49
pop ecx
add eax, 0x34
mov dword [ebp - 0x3c], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xfc]
inc eax
cmp eax, 3
jl 0x40890e
push 0x38
mov dword [ebp - 0x40], ecx
xor eax, eax
pop edi
mov dword [ebp - 0x124], 0x2a
mov dword [ebp - 0x120], 0x52
mov dword [ebp - 0x11c], 0x5b
mov dword [ebp - 0x118], 0x63
mov dword [ebp - 0x114], 0xfffffefa
sub edi, dword [ebp + eax*4 - 0x124]
inc eax
cmp eax, 5
jl 0x408955
movups xmm1, xmmword [ebp - 0xb8]
push 4
pop esi
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ebx, xmm1
movups xmm1, xmmword [ebp - 0x78]
add ebx, 0x2f
movaps xmm0, xmm1
mov dword [ebp - 0x50], ebx
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x5e
mov dword [ebp - 0x4c], eax
xor eax, eax
add esi, dword [ebp + eax*4 - 0xd0]
inc eax
cmp eax, 2
jl 0x4089b6
mov ecx, dword [ebp - 4]
mov eax, ecx
imul eax, dword [ebp - 0x10]
imul ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
movups xmm0, xmmword [ebp - 0xc8]
add eax, dword [ebp - 0x20]
add ecx, dword [ebp - 0x28]
mov al, byte [eax + ebx]
mov byte [ecx + edx], al
mov ecx, dword [ebp - 4]
mov eax, ecx
imul eax, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x34]
add eax, dword [ebp - 0x30]
add ecx, dword [ebp - 0x38]
mov al, byte [eax + ebx]
mov byte [ecx + edx], al
mov ecx, dword [ebp - 4]
mov eax, ecx
imul eax, dword [ebp - 0x3c]
imul ecx, dword [ebp - 0x44]
add eax, dword [ebp - 0x40]
add ecx, dword [ebp - 0x48]
mov al, byte [eax + ebx]
mov ebx, edx
mov byte [ecx + ebx], al
mov ecx, dword [ebp - 4]
mov eax, ecx
imul eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x1c]
imul ecx, edi
add eax, esi
add ecx, dword [ebp - 0x50]
mov al, byte [eax + ebx]
mov ebx, edx
mov edx, dword [ebp - 0x54]
mov byte [ecx + ebx], al
mov eax, dword [ebp - 0xc]
mov ebx, dword [0x44ef24]
inc al
mov dword [ebp - 0xc], eax
movzx eax, al
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], ebx
cmp eax, ebx
jl 0x408698
push 0xf
pop eax
cmp bl, byte [ebp - 0x68]
jae 0x4097d1
push 0x38
pop ecx
push 0x3f
pop edi
push 0x4e
pop esi
push 0x2f
pop ebx
push 0x2b
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0xb8], ecx
pop ecx
push 0x16
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x260], eax
pop eax
push 0x1c
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x1d0], esi
pop esi
push 9
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x1cc], ebx
pop ebx
push 0x25
mov dword [ebp - 0x268], ebx
pop ebx
mov dword [ebp - 0x190], 0xffffffb5
mov dword [ebp - 0xb4], 0x2d
mov dword [ebp - 0xb0], 0x60
mov dword [ebp - 0xac], 0xffffff63
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], 0x29
mov dword [ebp - 0xa0], 0x31
mov dword [ebp - 0x9c], 0xffffff06
mov dword [ebp - 0x1b8], 0x56
mov dword [ebp - 0x1b4], 0x24
mov dword [ebp - 0x1b0], 0xffffff90
mov dword [ebp - 0x84], 0x61
mov dword [ebp - 0x80], 0x34
mov dword [ebp - 0x7c], 0xffffff39
mov dword [ebp - 0x64], 7
mov dword [ebp - 0x60], 0x1b
mov dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x58], 0xffffffc4
mov dword [ebp - 0x74], 0x60
mov dword [ebp - 0x70], 0x13
mov dword [ebp - 0x6c], 0xffffff1f
mov dword [ebp - 0x18c], 0x22
mov dword [ebp - 0x188], 0xffffffb8
mov dword [ebp - 0x94], 0x33
mov dword [ebp - 0x90], 0x4b
mov dword [ebp - 0x8c], 0xffffff1a
mov dword [ebp - 0x1c4], 0x64
mov dword [ebp - 0x1bc], 0xffffffa5
mov dword [ebp - 0x250], 0x63
mov dword [ebp - 0x24c], 0x37
mov dword [ebp - 0x248], 0x28
mov dword [ebp - 0x244], 0xffffff62
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 0x258], 0x47
mov dword [ebp - 0x254], 0xffffff86
mov dword [ebp - 0x1c8], 0xffffff9b
mov dword [ebp - 0x1dc], 0x49
mov dword [ebp - 0x1d8], 0x4f
mov dword [ebp - 0x1d4], 0xffffff68
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], esi
mov dword [ebp - 0x1e0], 0xffffff8c
mov dword [ebp - 0xf8], 0x46
mov dword [ebp - 0xf4], 0xffffff60
mov dword [ebp - 0x1f4], 1
mov dword [ebp - 0x1f0], 0x4a
mov dword [ebp - 0x1ec], 0xffffff8b
mov dword [ebp - 0x270], 0x36
mov dword [ebp - 0x26c], 0x23
mov dword [ebp - 0x264], 0xffffff96
mov dword [ebp - 0x210], 0x14
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x208], 0x24
push 0xffffffffffffff93
mov dword [ebp - 0x1ac], eax
pop eax
push 9
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x1f8], eax
pop eax
push 0x20
mov dword [ebp - 0x1a8], edi
mov dword [ebp - 0x230], edi
pop edi
mov dword [ebp - 0x204], 0xffffff45
mov dword [ebp - 0x220], 0x38
mov dword [ebp - 0x21c], 0x1a
mov dword [ebp - 0x218], 0x47
mov dword [ebp - 0x214], 0xffffff47
mov dword [ebp - 0xec], 0x5c
mov dword [ebp - 0x200], 0x1d
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x22c], 0x35
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], 0xffffff6c
mov dword [ebp - 0x240], 0x10
mov dword [ebp - 0x23c], 0x5d
mov dword [ebp - 0x238], 0x63
mov dword [ebp - 0x234], 0xffffff19
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], 0x52
mov dword [ebp - 0x198], 0xffffff6b
mov dword [ebp - 0xc4], 0x2f
mov dword [ebp - 0xc0], 0x30
mov dword [ebp - 0xbc], 0xffffffaf
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], 0x50
mov dword [ebp - 0x118], 8
mov dword [ebp - 0x114], 0xffffffb4
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x130], 0xb
mov dword [ebp - 0x12c], 0x2a
mov dword [ebp - 0x128], 0xffffffca
mov dword [ebp - 0x10c], 0x34
mov dword [ebp - 0x108], 0xa
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], 0xffffff66
mov dword [ebp - 0xe0], 0x53
mov dword [ebp - 0xdc], 0xffffff73
movups xmm4, xmmword [ebp - 0x98]
push 0x13
movups xmm2, xmmword [ebp - 0x78]
pop ecx
movups xmm6, xmmword [ebp - 0x64]
xor eax, eax
movups xmm5, xmmword [ebp - 0x88]
movups xmm3, xmmword [ebp - 0xa8]
movups xmm0, xmmword [ebp - 0xb8]
add ecx, dword [ebp + eax*4 - 0x194]
inc eax
cmp eax, 2
jl 0x408e3a
xorps xmm1, xmm1
mov dword [ebp - 0x48], ecx
psubd xmm1, xmm0
mov dword [ebp - 0x284], 0xa
movaps xmm0, xmm1
mov dword [ebp - 0x280], 0x49
psrldq xmm0, 8
xor ecx, ecx
paddd xmm1, xmm0
mov dword [ebp - 0x27c], edi
movups xmm0, xmm1
mov dword [ebp - 0x278], 0x64
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x274], 0xffffff29
movd eax, xmm1
movups xmm1, xmm3
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
add eax, 0x2c
movups xmm0, xmm1
mov dword [ebp - 0x50], eax
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x62
mov dword [ebp - 0x54], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x284]
inc eax
cmp eax, 5
jl 0x408eca
push 0xb
mov dword [ebp - 0x4c], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0x1b8]
inc eax
cmp eax, 3
jl 0x408edf
xorps xmm1, xmm1
mov dword [ebp - 0x38], ecx
psubd xmm1, xmm5
mov dword [ebp - 0x298], 0x19
movaps xmm0, xmm1
mov dword [ebp - 0x294], 0x5a
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x28c], 0x2d
movups xmm0, xmm1
mov dword [ebp - 0x288], 0xffffff5f
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmm6
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
add eax, edi
movups xmm0, xmm1
mov dword [ebp - 0x40], eax
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0xc
pop ecx
add eax, 0xb
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x44], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x298]
inc eax
cmp eax, 5
jl 0x408f6f
mov bl, byte [str.SECURITY]
movups xmm1, xmm2
movaps xmm0, xmm1
mov dword [ebp - 0x3c], ecx
psrldq xmm0, 8
mov ecx, str.SECURITY
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x2a
pop esi
add eax, 0x61
mov dword [ebp - 0x28], eax
test bl, bl
je 0x408fcd
mov al, bl
sub al, 0x30
cmp al, 9
ja 0x408fc7
inc ecx
mov al, byte [ecx]
test al, al
jne 0x408fb8
jmp 0x408fcd
and edx, 0x881cc5f4
or edx, 0xa34bd377
xor eax, eax
mov dword [0x44d0e8], edx
add esi, dword [ebp + eax*4 - 0x18c]
inc eax
cmp eax, 2
jl 0x408fdb
push 9
pop eax
mov ecx, eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2ac], 0x4a
xor eax, eax
mov dword [ebp - 0x2a8], 0x49
mov dword [ebp - 0x2a4], 0x41
mov dword [ebp - 0x2a0], 0x4e
mov dword [ebp - 0x29c], 0xfffffee6
sub ecx, dword [ebp + eax*4 - 0x2ac]
inc eax
cmp eax, 5
jl 0x409024
movups xmm1, xmm4
mov dword [ebp - 0x34], ecx
movaps xmm0, xmm1
mov esi, 0x1aa7
psrldq xmm0, 8
mov ecx, str.SECURITY
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x1b
pop edi
add eax, 0x3b
mov dword [ebp - 0x2c], eax
movzx eax, bl
test bl, bl
je 0x40909c
add esi, eax
inc ecx
cmp esi, 0xd2b
ja 0x409087
movzx eax, byte [ecx]
test eax, eax
jne 0x40906d
add edx, 0xdbc25ee9
jmp 0x4090ad
sub esp, 0xc
call fcn.0040418f
add esp, 0xc
xor dword [0x44d0e8], 0x49ad9508
call fcn.00403e10
mov edx, dword [0x44d0e8]
xor edx, 0x3ada4906
sub esp, 0xc
xor edx, 0xe4fcae11
mov dword [0x44d0e8], edx
call fcn.0040418f
add esp, 0xc
xor eax, eax
sub edi, dword [ebp + eax*4 - 0x1c4]
inc eax
cmp eax, 3
jl 0x4090c6
push 0x62
mov dword [ebp - 0x13c], edi
mov edx, 0xf82
mov eax, 0x401440
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x4c0
ja 0x409102
movzx ecx, word [eax]
test ecx, ecx
jne 0x4090e6
mov esi, dword [0x44d0e8]
jmp 0x409111
call fcn.00403e10
imul esi, dword [0x44d0e8], 0xae7bc3ed
call fcn.0040406a
movups xmm0, xmmword [ebp - 0x250]
or esi, 0xf5e1ecf9
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 8
pop ecx
add eax, 0x28
mov dword [ebp - 0x20], eax
xor eax, eax
sub esi, 0x64f7e2c9
sub ecx, dword [ebp + eax*4 - 0x260]
or esi, 0xbd2f704a
inc eax
cmp eax, 4
jl 0x409157
push 0x1b
mov dword [ebp - 0x24], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0x1d0]
inc eax
cmp eax, 3
jl 0x409172
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
imul edi, esi, 0x5b82cae2
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x1dc]
inc eax
cmp eax, 3
jl 0x40918c
movzx ebx, byte [str.SECURITY]
xor esi, esi
push 0x48
pop eax
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0xc], eax
mov edx, 0x26d5
mov eax, str.SECURITY
mov ecx, ebx
test ebx, ebx
je 0x4091dd
add edx, ecx
inc eax
cmp edx, 0x883
ja 0x4091d2
movzx ecx, byte [eax]
test ecx, ecx
jne 0x4091be
jmp 0x4091dd
call fcn.0040406a
imul edi, edi, 0xd335db4d
mov eax, dword [ebp - 0xc]
add edi, 0x375428fa
add eax, dword [ebp + esi*4 - 0x1e8]
xor edi, 0x1480fca0
inc esi
mov dword [ebp - 0xc], eax
cmp esi, 3
jl 0x4091ae
push 0x38
pop ecx
push 0x47
pop eax
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b4], eax
xor eax, eax
mov dword [ebp - 0x2c0], 0x2d
mov dword [ebp - 0x2b8], 0x5f
mov dword [ebp - 0x2b0], 0xffffff1a
sub ecx, dword [ebp + eax*4 - 0x2c0]
inc eax
cmp eax, 5
jl 0x40922e
push 0x5e
mov dword [ebp - 0x144], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0xf8]
inc eax
cmp eax, 2
jl 0x409246
push 0x2a
mov dword [ebp - 0x154], ecx
xor eax, eax
pop ecx
push 3
pop ebx
add ecx, dword [ebp + eax*4 - 0x1f4]
inc eax
cmp eax, ebx
jl 0x409261
mov al, byte [str.ModuleCollection]
mov dword [ebp - 0x17c], ecx
xor ecx, ecx
test al, al
je 0x409298
inc ecx
cmp ecx, 0x1600
jg 0x409292
cmp byte [ecx + str.ModuleCollection], 0
jne 0x40927e
jmp 0x409298
add edi, 0x6ff570cf
imul ecx, edi, 0x660cf188
push 0xc
pop edi
xor ecx, 0xbdfcd458
xor esi, esi
mov edx, str.ModuleCollection
jmp 0x4092b9
sub al, 0x30
cmp al, 9
ja 0x4092bf
inc edx
mov al, byte [edx]
test al, al
jne 0x4092b0
jmp 0x4092c5
imul ecx, ecx, 0x174acdcd
imul eax, ecx, 0xa23f73ea
sub esp, 0xc
mov dword [0x44d0e8], eax
call fcn.0040418f
add edi, dword [ebp + esi*4 - 0x270]
add esp, 0xc
inc esi
cmp esi, 4
jge 0x4092f5
mov ecx, dword [0x44d0e8]
mov al, byte [str.ModuleCollection]
jmp 0x4092a9
movups xmm1, xmmword [ebp - 0x210]
push 0x18
mov dword [ebp - 0x148], edi
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, 0x5e
mov dword [ebp - 0x14c], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0x1ac]
inc eax
cmp eax, ebx
jl 0x40932c
movups xmm1, xmmword [ebp - 0x220]
push 0x12
pop esi
movaps xmm0, xmm1
mov dword [ebp - 0x150], ecx
psrldq xmm0, 8
mov ecx, esi
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x24
mov dword [ebp - 0x170], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xec]
inc eax
cmp eax, 2
jl 0x409371
push 0x20
mov dword [ebp - 0x164], ecx
xor eax, eax
pop ecx
push 0x14
pop edx
mov dword [ebp - 0x2d4], 0x5d
mov dword [ebp - 0x2d0], 0x63
mov dword [ebp - 0x2cc], edx
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2c4], 0xffffff36
sub ecx, dword [ebp + eax*4 - 0x2d4]
inc eax
cmp eax, 5
jl 0x4093b6
push 0x35
mov dword [ebp - 0x178], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x200]
inc eax
cmp eax, ebx
jl 0x4093ce
movups xmm0, xmmword [ebp - 0x230]
mov dword [ebp - 0x174], ecx
mov ecx, edx
xorps xmm1, xmm1
imul esi, dword [0x44d0e8], 0x70225a1f
psubd xmm1, xmm0
mov dword [ebp - 0x2e8], 0x64
movaps xmm0, xmm1
mov dword [ebp - 0x2e4], 0x62
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x2e0], 0x31
movups xmm0, xmm1
mov dword [ebp - 0x2d8], 0xfffffeeb
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x240]
push 0x30
add eax, 0xc
movaps xmm0, xmm1
mov dword [ebp - 0x180], eax
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
mov dword [ebp - 0x2dc], edx
add eax, 0x1b
mov dword [ebp - 0x15c], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x2e8]
inc eax
cmp eax, 5
jl 0x40947e
push 0x24
mov dword [ebp - 0x158], ecx
xor eax, eax
pop ecx
push 0x3d
pop edi
mov dword [ebp - 0x2fc], 0x2a
mov dword [ebp - 0x2f8], 0x26
mov dword [ebp - 0x2f4], edi
mov dword [ebp - 0x2f0], 0x3a
mov dword [ebp - 0x2ec], 0xffffff59
sub ecx, dword [ebp + eax*4 - 0x2fc]
inc eax
cmp eax, 5
jl 0x4094c7
push 0x3c
mov dword [ebp - 0x16c], ecx
xor eax, eax
pop ecx
add ecx, dword [ebp + eax*4 - 0x1a0]
inc eax
cmp eax, ebx
jl 0x4094df
push 0x10
mov dword [ebp - 0x168], ecx
xor eax, eax
pop ecx
sub ecx, dword [ebp + eax*4 - 0xc4]
inc eax
cmp eax, ebx
jl 0x4094f6
movups xmm0, xmmword [ebp - 0x120]
mov dword [ebp - 0x160], ecx
mov ecx, str.ModuleCollection
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
add eax, edx
mov edx, 0x4b6
mov dword [ebp - 0xd4], eax
movzx eax, byte [str.ModuleCollection]
jmp 0x40955b
add edx, eax
inc ecx
cmp edx, 0x1611
ja 0x409561
movzx eax, byte [ecx]
test eax, eax
jne 0x40954d
jmp 0x40956c
call fcn.0040406a
xor esi, 0x93e8574
sub esi, 0x713f63d1
mov dword [0x44d0e8], esi
call fcn.00403e10
movups xmm0, xmmword [ebp - 0x134]
mov dword [ebp - 0x310], 0xd
xorps xmm1, xmm1
mov dword [ebp - 0x30c], 0x3e
psubd xmm1, xmm0
mov dword [ebp - 0x308], 0x19
movaps xmm0, xmm1
mov dword [ebp - 0x300], 0xffffff7c
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x10c]
push 0x3b
add eax, 0x1e
movaps xmm0, xmm1
mov dword [ebp - 0x14], eax
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
pop eax
paddd xmm1, xmm0
mov dword [ebp - 0x304], eax
movd ebx, xmm1
push 0x1e
pop ecx
add ebx, eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x310]
inc eax
cmp eax, 5
jl 0x409608
mov dword [ebp - 0x184], ecx
xor eax, eax
add edi, dword [ebp + eax*4 - 0xe0]
inc eax
cmp eax, 2
jl 0x40961d
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
movzx esi, al
mov ecx, dword [ebp - 0x48]
mov eax, esi
sub eax, dword [ebp - 0x54]
imul eax, dword [ebp - 0x50]
mov dword [ebp - 0xcc], edi
add eax, dword [ebp - 0x4c]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 4], al
mov eax, esi
sub eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x38]
add eax, dword [ebp - 0x3c]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 4], al
mov eax, esi
sub eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 4], al
mov eax, esi
sub eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x13c]
add eax, dword [ebp - 0x1c]
mov al, byte [eax + edx]
mov byte [ebp + ecx - 4], al
mov eax, esi
mov ecx, dword [0x44ef24]
cdq
idiv ecx
cmp edx, dword [ebp - 0x140]
jne 0x4096db
lea ecx, [ebp - 4]
call fcn.004082b6
mov edx, dword [ebp + 8]
lea ecx, [ebp - 4]
call fcn.0040816f
lea eax, [ebp - 4]
push eax
mov eax, esi
cdq
idiv dword [0x44ef24]
mov cl, al
call fcn.00405f94
mov edx, eax
lea ecx, [ebp - 4]
call fcn.0040428f
pop ecx
jmp 0x4096f3
cmp ecx, dword [ebp - 0xc]
jle 0x4096f3
cmp edx, dword [ebp - 0x144]
jne 0x4096f3
mov edx, dword [ebp + 8]
lea ecx, [ebp - 4]
call fcn.0040816f
mov eax, dword [ebp - 0x148]
mov edx, esi
sub edx, dword [0x44ef24]
mov ecx, dword [ebp - 8]
imul eax, edx
mov edi, dword [ebp - 8]
imul ebx, edx
add eax, dword [ebp - 0x14c]
add ebx, dword [ebp - 0x184]
mov cl, byte [eax + ecx]
mov eax, dword [ebp - 0x150]
xor cl, byte [ebp + eax - 4]
mov eax, esi
imul eax, dword [ebp - 0x154]
add eax, dword [ebp - 0x17c]
mov byte [eax + edi], cl
mov ecx, edi
mov eax, dword [ebp - 0x178]
imul eax, edx
add eax, dword [ebp - 0x174]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x180]
xor al, byte [ebp + ecx - 4]
mov ecx, dword [ebp - 0x170]
imul ecx, esi
add ecx, dword [ebp - 0x164]
mov byte [ecx + edi], al
mov ecx, edi
mov eax, dword [ebp - 0x16c]
imul eax, edx
mov edx, edi
add eax, dword [ebp - 0x168]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x160]
xor al, byte [ebp + ecx - 4]
mov ecx, dword [ebp - 0x15c]
imul ecx, esi
add ecx, dword [ebp - 0x158]
mov byte [ecx + edi], al
mov ecx, dword [ebp - 0xd4]
mov al, byte [ebx + edx]
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x10]
imul ecx, esi
xor al, byte [ebp + edi - 4]
add ecx, dword [ebp - 0x14]
inc bl
mov dword [ebp - 0x10], ebx
mov byte [ecx + edx], al
cmp bl, byte [ebp - 0x68]
jae 0x4097d1
mov edx, dword [0x44d0e8]
push 0x20
pop edi
jmp 0x408e11
pop edi
pop esi
pop ebx
leave
ret