Function at 0x40dac2
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x610
push esi
push edi
push 4
xor edi, edi
mov edx, 0xe4c0d971
pop ecx
mov dword [ebp - 4], edi
call fcn.00404bfc
movaps xmm0, xmmword [0x41b120]
mov edx, eax
movups xmmword [ebp - 0x66], xmm0
mov dword [ebp - 0x56], 0xf0b1a3d
xor ecx, ecx
mov word [ebp - 0x52], 3
mov al, byte [ebp - 0x66]
xor byte [ebp + ecx - 0x65], al
inc ecx
cmp ecx, 0x14
jb 0x40db0d
lea eax, [ebp - 0xcc]
mov byte [ebp - 0x51], 0
push eax
lea eax, [ebp - 0x65]
push eax
push 0x80000001
call edx
test eax, eax
jne 0x40e8a2
push 4
mov edx, 0x77739979
mov dword [ebp - 0x100], 0x104
pop ecx
call fcn.00404bfc
push 0x53
pop edx
mov esi, eax
mov byte [ebp - 0x28], dl
mov dword [ebp - 0x27], 0x64687756
xor ecx, ecx
mov byte [ebp - 0x23], 0x70
mov byte [ebp - 0x22], dl
mov dword [ebp - 0x21], 0x6b7764
movsx eax, dl
and eax, 0x8000000f
jns 0x40db7d
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 9
jae 0x40db8c
mov dl, byte [ebp - 0x28]
jmp 0x40db6e
lea eax, [ebp - 0x100]
xor ecx, ecx
push eax
lea eax, [ebp - 0x508]
mov byte [ebp - 0x1e], cl
push eax
push ecx
push ecx
lea eax, [ebp - 0x27]
push eax
push dword [ebp - 0xcc]
call esi
mov edx, 0x59b26164
push 4
pop ecx
test eax, eax
je 0x40dbcb
call fcn.00404bfc
push dword [ebp - 0xcc]
call eax
jmp 0x40e8a2
call fcn.00404bfc
push dword [ebp - 0xcc]
call eax
lea eax, [ebp - 0x508]
push eax
lea ecx, [ebp - 0x19c]
call fcn.00401a09
mov al, 8
mov dword [ebp - 0x1d], 0x776b6408
mov dword [ebp - 0x19], 0x6f716e76
xor ecx, ecx
mov byte [ebp - 0x15], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40dc0f
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 7
jae 0x40dc1e
mov al, byte [ebp - 0x1d]
jmp 0x40dc00
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dc28
sub ecx, edx
lea eax, [ebp - 0x1c]
push ecx
push eax
lea ecx, [ebp - 0x19c]
call fcn.0040266f
push 0x41e7d0
lea ecx, [ebp - 0x1b4]
call fcn.004025ee
lea ecx, [ebp - 0x1b4]
call fcn.004140b6
test al, al
je 0x40e88c
push 0x65
pop ecx
mov al, 0x59
mov byte [ebp - 0xb], cl
mov byte [ebp - 0xc], al
xor ecx, ecx
mov dword [ebp - 0xa], 0x6a6e7d5c
mov word [ebp - 6], 0x76
movsx eax, al
and eax, 0x8000000f
jns 0x40dc8d
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xb], al
inc ecx
cmp ecx, 6
jae 0x40dc9c
mov al, byte [ebp - 0xc]
jmp 0x40dc7e
lea eax, [ebp - 0xb]
mov byte [ebp - 5], 0
push eax
lea edx, [ebp - 0x1b4]
lea ecx, [ebp - 0x124]
call fcn.004026c8
pop ecx
lea ecx, [ebp - 0x124]
call fcn.004140b6
test al, al
jne 0x40dcea
mov edx, 0x29158ba4
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0x110], 0xf
lea ecx, [ebp - 0x124]
push 0
cmova ecx, dword [ebp - 0x124]
push ecx
call eax
mov edx, 0x69ebc9fc
xor ecx, ecx
call fcn.00404bfc
mov esi, eax
mov dword [ebp - 0xc], 0x2f2b5d31
mov dl, 0x31
mov dword [ebp - 8], 0x676577
xor ecx, ecx
movsx eax, dl
and eax, 0x8000000f
jns 0x40dd19
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xb], al
inc ecx
cmp ecx, 6
jae 0x40dd28
mov dl, byte [ebp - 0xc]
jmp 0x40dd0a
lea eax, [ebp - 0xb]
mov byte [ebp - 5], 0
push eax
lea edx, [ebp - 0x19c]
lea ecx, [ebp - 0x16c]
call fcn.004026c8
pop ecx
cmp dword [eax + 0x14], 0xf
jbe 0x40dd4a
mov eax, dword [eax]
lea ecx, [ebp - 0x2f8]
push ecx
push eax
call esi
lea ecx, [ebp - 0x16c]
mov esi, eax
call fcn.00401a42
cmp esi, 0xffffffff
je 0x40dec3
push 0x65
pop eax
mov byte [ebp - 0xf], al
mov cl, 0x61
movsx eax, al
mov byte [ebp - 0xd], 0
and eax, 0x8000000f
jns 0x40dd85
dec eax
or eax, 0xfffffff0
inc eax
sub cl, al
mov byte [ebp - 0xd], 0
lea eax, [ebp - 0xe]
mov byte [ebp - 0xe], cl
push eax
lea edx, [ebp - 0x19c]
lea ecx, [ebp - 0xe8]
call fcn.004026c8
pop ecx
lea ecx, [ebp - 0x2cc]
mov edx, eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ddaf
sub ecx, edi
lea eax, [ebp - 0x2cc]
push ecx
push eax
mov ecx, edx
call fcn.0040266f
push eax
lea ecx, [ebp - 0x68]
call fcn.004019d0
lea ecx, [ebp - 0xe8]
call fcn.00401a42
push 0x24
pop eax
mov byte [ebp - 0x13], al
mov cl, 0x60
movsx eax, al
mov byte [ebp - 0x11], 0
and eax, 0x8000000f
jns 0x40ddf6
dec eax
or eax, 0xfffffff0
inc eax
sub cl, al
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x12]
mov byte [ebp - 0x12], cl
push eax
lea edx, [ebp - 0x124]
lea ecx, [ebp - 0xe8]
call fcn.004026c8
pop ecx
lea ecx, [ebp - 0x2cc]
mov edx, eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40de20
sub ecx, edi
lea eax, [ebp - 0x2cc]
push ecx
push eax
mov ecx, edx
call fcn.0040266f
push eax
lea ecx, [ebp - 0xc4]
call fcn.004019d0
lea ecx, [ebp - 0xe8]
call fcn.00401a42
mov edx, 0xc768cc
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0xb0], 0xf
lea edx, [ebp - 0xc4]
push 0
cmova edx, dword [ebp - 0xc4]
lea ecx, [ebp - 0x68]
cmp dword [ebp - 0x54], 0xf
push edx
cmova ecx, dword [ebp - 0x68]
push ecx
call eax
lea ecx, [ebp - 0xc4]
call fcn.00401a42
lea ecx, [ebp - 0x68]
call fcn.00401a42
mov edx, 0xa24669f6
xor ecx, ecx
call fcn.00404bfc
lea ecx, [ebp - 0x2f8]
push ecx
push esi
call eax
test eax, eax
jne 0x40dd6a
mov edx, 0x25ec0c37
xor ecx, ecx
call fcn.00404bfc
push esi
call eax
mov edi, dword [ebp - 4]
movaps xmm0, xmmword [0x41b400]
xor ecx, ecx
movups xmmword [ebp - 0x62], xmm0
mov word [ebp - 0x52], 0x7f
mov al, byte [ebp - 0x62]
xor byte [ebp + ecx - 0x61], al
inc ecx
cmp ecx, 0x10
jb 0x40ded6
lea eax, [ebp - 0x61]
mov byte [ebp - 0x51], 0
push eax
lea edx, [ebp - 0x124]
lea ecx, [ebp - 0x184]
call fcn.004026c8
pop ecx
mov edx, 0x58f0d8cc
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0x170], 0xf
lea ecx, [ebp - 0x184]
cmova ecx, dword [ebp - 0x184]
xor edx, edx
push edx
push 0x80
push 2
push edx
push edx
push 0x40000000
push ecx
call eax
mov esi, eax
mov dword [ebp - 0xc8], esi
cmp esi, 0xffffffff
je 0x40e876
push 4
mov edx, 0xe4c0d971
pop ecx
call fcn.00404bfc
movaps xmm0, xmmword [0x41afa0]
mov edx, eax
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0x3b3f2e09
xor ecx, ecx
mov dword [ebp - 0x7f], 0x2a1b0637
mov word [ebp - 0x7b], 0x292a
mov byte [ebp - 0x79], 0
mov al, byte [ebp - 0x93]
xor byte [ebp + ecx - 0x92], al
inc ecx
cmp ecx, 0x19
jb 0x40df7c
lea eax, [ebp - 0xd0]
mov byte [ebp - 0x79], 0
push eax
lea eax, [ebp - 0x92]
push eax
push 0x80000001
call edx
test eax, eax
jne 0x40e867
push 4
mov edx, 0x74d881a2
pop ecx
call fcn.00404bfc
push 0x104
lea ecx, [ebp - 0x400]
mov dword [ebp - 0xfc], 1
push ecx
push 0
push dword [ebp - 0xd0]
call eax
jmp 0x40e84a
lea eax, [ebp - 0x400]
push eax
lea ecx, [ebp - 0xc4]
call fcn.00401a09
movups xmm0, xmmword [0x41b330]
mov edx, eax
mov dword [ebp - 0x84], 0x70748362
mov dword [ebp - 0x80], 0x7f506b7c
xor ecx, ecx
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x7c], 0x6b827f
movsx eax, byte [ebp - 0x94]
and eax, 0x8000000f
jns 0x40e031
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x93], al
inc ecx
cmp ecx, 0x1a
jb 0x40e01e
push edx
lea edx, [ebp - 0x93]
mov byte [ebp - 0x79], 0
lea ecx, [ebp - 0x16c]
call fcn.00409d5a
pop ecx
lea ecx, [ebp - 0xc4]
call fcn.00401a42
push 4
mov edx, 0xe4c0d971
pop ecx
call fcn.00404bfc
cmp dword [ebp - 0x158], 0xf
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x16c]
cmova ecx, dword [ebp - 0x16c]
push edx
push ecx
push 0x80000001
call eax
push 4
test eax, eax
jne 0x40e80b
mov edx, 0x77739979
mov dword [ebp - 0xec], 0x104
pop ecx
call fcn.00404bfc
mov esi, eax
mov dword [ebp - 0x4d], 0x7c705d4f
mov dl, 0x4f
mov word [ebp - 0x49], 0x74
xor ecx, ecx
movsx eax, dl
and eax, 0x8000000f
jns 0x40e0ce
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 4
jae 0x40e0dd
mov dl, byte [ebp - 0x4d]
jmp 0x40e0bf
lea eax, [ebp - 0xec]
xor ecx, ecx
push eax
lea eax, [ebp - 0x610]
mov byte [ebp - 0x48], cl
push eax
push ecx
push ecx
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x78]
call esi
test eax, eax
jne 0x40e1f6
mov al, 0x7c
mov dword [ebp - 0x14], 0x16197c
xor ecx, ecx
movsx eax, al
and eax, 0x8000000f
jns 0x40e11d
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 2
jae 0x40e12c
mov al, byte [ebp - 0x14]
jmp 0x40e10e
lea eax, [ebp - 0x610]
mov byte [ebp - 0x11], 0
push eax
lea ecx, [ebp - 0x13c]
call fcn.00401a09
mov esi, eax
mov dword [ebp - 0x1c], 0x6f635012
mov dl, 0x12
mov dword [ebp - 0x18], 0x223c67
xor ecx, ecx
movsx eax, dl
and eax, 0x8000000f
jns 0x40e165
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 6
jae 0x40e174
mov dl, byte [ebp - 0x1c]
jmp 0x40e156
push esi
lea edx, [ebp - 0x1b]
mov byte [ebp - 0x15], 0
lea ecx, [ebp - 0x154]
call fcn.00409d5a
lea ecx, [ebp - 0x13]
mov edx, eax
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00404203
pop ecx
pop ecx
lea ecx, [ebp - 0x154]
call fcn.00401a42
lea ecx, [ebp - 0x13c]
call fcn.00401a42
mov edx, 0x36dc45ef
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0xb0], 0xf
lea edx, [ebp - 0xec]
mov esi, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc4]
cmova ecx, dword [ebp - 0xc4]
push 0
push edx
push dword [ebp - 0xb4]
push ecx
push esi
call eax
lea ecx, [ebp - 0xc4]
call fcn.00401a42
jmp 0x40e1fc
mov esi, dword [ebp - 0xc8]
push 4
pop eax
mov edx, 0x77739979
mov dword [ebp - 0xf0], eax
mov ecx, eax
call fcn.00404bfc
mov edx, eax
mov dword [ebp - 0x9f], 0x2e33145d
mov cl, 0x5d
mov dword [ebp - 0x9b], 0x31313c29
mov word [ebp - 0x97], 0x3938
xor eax, eax
mov byte [ebp - 0x95], 0
xor byte [ebp + eax - 0x9e], cl
inc eax
cmp eax, 9
jae 0x40e250
mov cl, byte [ebp - 0x9f]
jmp 0x40e23b
lea eax, [ebp - 0xf0]
xor ecx, ecx
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 0x95], cl
push eax
push ecx
push ecx
lea eax, [ebp - 0x9e]
push eax
push dword [ebp - 0x78]
call edx
test eax, eax
jne 0x40e3fe
xor edx, edx
mov dword [ebp - 0x2c], 0x14176a
mov al, 0x6a
mov ecx, edx
movsx eax, al
and eax, 0x8000000f
jns 0x40e298
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 2
jae 0x40e2a7
mov al, byte [ebp - 0x2c]
jmp 0x40e289
mov ecx, edx
mov byte [ebp - 0x29], dl
cmp dword [ebp - 0x10c], edx
je 0x40e2f2
or edi, 1
mov dword [ebp - 0x42], 0x786a5e55
mov dword [ebp - 4], edi
mov al, 0x55
mov byte [ebp - 0x3e], dl
movsx eax, al
and eax, 0x8000000f
jns 0x40e2d5
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x41], al
inc ecx
cmp ecx, 3
jae 0x40e2e4
mov al, byte [ebp - 0x42]
jmp 0x40e2c6
mov byte [ebp - 0x3e], dl
lea eax, [ebp - 0x41]
lea ecx, [ebp - 0x90]
jmp 0x40e32b
or edi, 2
mov dword [ebp - 0x10], 0x7d5c5e
mov dword [ebp - 4], edi
mov al, 0x5e
movsx eax, al
and eax, 0x8000000f
jns 0x40e310
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xf], al
inc ecx
cmp ecx, 2
jae 0x40e31f
mov al, byte [ebp - 0x10]
jmp 0x40e301
mov byte [ebp - 0xd], dl
lea eax, [ebp - 0xf]
lea ecx, [ebp - 0x154]
push eax
call fcn.00401a09
mov edx, eax
mov dword [ebp - 0x5d], 0x75684f06
mov cl, 6
mov dword [ebp - 0x59], 0x6a6a6772
mov dword [ebp - 0x55], 0x263c6263
xor eax, eax
mov byte [ebp - 0x51], 0
xor byte [ebp + eax - 0x5c], cl
inc eax
cmp eax, 0xb
jae 0x40e35f
mov cl, byte [ebp - 0x5d]
jmp 0x40e350
push edx
lea edx, [ebp - 0x5c]
mov byte [ebp - 0x51], 0
lea ecx, [ebp - 0x13c]
call fcn.00409d5a
lea ecx, [ebp - 0x2b]
mov edx, eax
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00404203
pop ecx
pop ecx
lea ecx, [ebp - 0x13c]
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 2
je 0x40e3ab
and eax, 0xfffffffd
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], eax
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 1
je 0x40e3c0
and eax, 0xfffffffe
lea ecx, [ebp - 0x90]
mov dword [ebp - 4], eax
call fcn.00401a42
mov edx, 0x36dc45ef
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0xb0], 0xf
lea edx, [ebp - 0xf0]
push 0
push edx
push dword [ebp - 0xb4]
lea ecx, [ebp - 0xc4]
cmova ecx, dword [ebp - 0xc4]
push ecx
push esi
call eax
lea ecx, [ebp - 0xc4]
call fcn.00401a42
push 4
pop edi
mov edx, 0x77739979
mov dword [ebp - 0xf4], edi
mov ecx, edi
call fcn.00404bfc
mov esi, eax
mov dword [ebp - 0x71], 0x7d84616f
mov dl, 0x6f
mov dword [ebp - 0x6d], 0x767d787d
mov byte [ebp - 0x69], 0
xor ecx, ecx
movsx eax, dl
and eax, 0x8000000f
jns 0x40e43a
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 7
jae 0x40e449
mov dl, byte [ebp - 0x71]
jmp 0x40e42b
lea eax, [ebp - 0xf4]
xor ecx, ecx
push eax
lea eax, [ebp - 0x108]
mov byte [ebp - 0x69], cl
push eax
push ecx
push ecx
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x78]
call esi
test eax, eax
jne 0x40e612
xor edx, edx
mov dword [ebp - 0x34], 0x44434e
mov cl, 0x4e
mov eax, edx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 2
jae 0x40e48b
mov cl, byte [ebp - 0x34]
jmp 0x40e47c
mov ecx, edx
mov eax, dword [ebp - 4]
mov byte [ebp - 0x31], dl
cmp dword [ebp - 0x108], edx
je 0x40e4d8
or eax, edi
mov dword [ebp - 0x47], 0x7c6e6279
mov dword [ebp - 4], eax
mov al, 0x79
mov byte [ebp - 0x43], dl
movsx eax, al
and eax, 0x8000000f
jns 0x40e4bb
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x46], al
inc ecx
cmp ecx, 3
jae 0x40e4ca
mov al, byte [ebp - 0x47]
jmp 0x40e4ac
mov byte [ebp - 0x43], dl
lea eax, [ebp - 0x46]
lea ecx, [ebp - 0x154]
jmp 0x40e511
or eax, 8
mov dword [ebp - 0x30], 0x7c5b5d
mov dword [ebp - 4], eax
mov al, 0x5d
movsx eax, al
and eax, 0x8000000f
jns 0x40e4f6
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 2
jae 0x40e505
mov al, byte [ebp - 0x30]
jmp 0x40e4e7
mov byte [ebp - 0x2d], dl
lea eax, [ebp - 0x2f]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00401a09
mov edx, eax
mov dword [ebp - 0xaa], 0x70775462
mov al, 0x62
mov dword [ebp - 0xa6], 0x69706b70
mov word [ebp - 0xa2], 0x223c
xor ecx, ecx
mov byte [ebp - 0xa0], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40e550
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa9], al
inc ecx
cmp ecx, 9
jae 0x40e565
mov al, byte [ebp - 0xaa]
jmp 0x40e541
push edx
lea edx, [ebp - 0xa9]
mov byte [ebp - 0xa0], 0
lea ecx, [ebp - 0x90]
call fcn.00409d5a
lea ecx, [ebp - 0x33]
mov edx, eax
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00404203
pop ecx
pop ecx
lea ecx, [ebp - 0x90]
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 8
je 0x40e5b7
and eax, 0xfffffff7
lea ecx, [ebp - 0x13c]
mov dword [ebp - 4], eax
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 4
je 0x40e5cc
and eax, 0xfffffffb
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], eax
call fcn.00401a42
mov edx, 0x36dc45ef
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0xb0], 0xf
lea edx, [ebp - 0xf4]
mov esi, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc4]
cmova ecx, dword [ebp - 0xc4]
push 0
push edx
push dword [ebp - 0xb4]
push ecx
push esi
call eax
lea ecx, [ebp - 0xc4]
call fcn.00401a42
jmp 0x40e618
mov esi, dword [ebp - 0xc8]
mov edx, 0x77739979
mov dword [ebp - 0xf8], edi
mov ecx, edi
call fcn.00404bfc
mov edx, eax
mov dword [ebp - 0x27], 0x2e3a1f4a
mov cl, 0x4a
mov dword [ebp - 0x23], 0x24233e2b
mov word [ebp - 0x1f], 0x2d
xor eax, eax
xor byte [ebp + eax - 0x26], cl
inc eax
cmp eax, 8
jae 0x40e653
mov cl, byte [ebp - 0x27]
jmp 0x40e644
lea eax, [ebp - 0xf8]
xor ecx, ecx
push eax
lea eax, [ebp - 0x104]
mov byte [ebp - 0x1e], cl
push eax
push ecx
push ecx
lea eax, [ebp - 0x26]
push eax
push dword [ebp - 0x78]
call edx
test eax, eax
jne 0x40e7f8
xor edx, edx
mov dword [ebp - 0xa], 0x16131679
mov al, 0x79
mov word [ebp - 6], 0x13
mov ecx, edx
movsx eax, al
and eax, 0x8000000f
jns 0x40e69b
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 9], al
inc ecx
cmp ecx, edi
jae 0x40e6a9
mov al, byte [ebp - 0xa]
jmp 0x40e68c
mov eax, dword [ebp - 4]
mov byte [ebp - 5], dl
cmp dword [ebp - 0x104], edx
je 0x40e6e8
or eax, 0x10
mov dword [ebp - 0x3d], 0x6e78441d
mov dword [ebp - 4], eax
mov cl, 0x1d
mov byte [ebp - 0x39], dl
mov eax, edx
xor byte [ebp + eax - 0x3c], cl
inc eax
cmp eax, 3
jae 0x40e6da
mov cl, byte [ebp - 0x3d]
jmp 0x40e6cb
mov byte [ebp - 0x39], dl
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x154]
jmp 0x40e714
or eax, 0x20
mov dword [ebp - 0x38], 0x3a1b55
mov dword [ebp - 4], eax
mov cl, 0x55
mov eax, edx
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 2
jae 0x40e708
mov cl, byte [ebp - 0x38]
jmp 0x40e6f9
mov byte [ebp - 0x35], dl
lea eax, [ebp - 0x37]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00401a09
mov edx, eax
mov dword [ebp - 0xdc], 0x697d580d
mov cl, 0xd
mov dword [ebp - 0xd8], 0x6364796c
mov dword [ebp - 0xd4], 0x2d376a
xor eax, eax
xor byte [ebp + eax - 0xdb], cl
inc eax
cmp eax, 0xa
jae 0x40e753
mov cl, byte [ebp - 0xdc]
jmp 0x40e73e
push edx
lea edx, [ebp - 0xdb]
mov byte [ebp - 0xd1], 0
lea ecx, [ebp - 0x90]
call fcn.00409d5a
lea ecx, [ebp - 9]
mov edx, eax
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00404203
pop ecx
pop ecx
lea ecx, [ebp - 0x90]
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 0x20
je 0x40e7a5
and eax, 0xffffffdf
lea ecx, [ebp - 0x13c]
mov dword [ebp - 4], eax
call fcn.00401a42
mov eax, dword [ebp - 4]
test al, 0x10
je 0x40e7ba
and eax, 0xffffffef
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], eax
call fcn.00401a42
mov edx, 0x36dc45ef
xor ecx, ecx
call fcn.00404bfc
cmp dword [ebp - 0xb0], 0xf
lea edx, [ebp - 0xf8]
push 0
push edx
push dword [ebp - 0xb4]
lea ecx, [ebp - 0xc4]
cmova ecx, dword [ebp - 0xc4]
push ecx
push esi
call eax
lea ecx, [ebp - 0xc4]
call fcn.00401a42
mov edx, 0x59b26164
mov ecx, edi
call fcn.00404bfc
push dword [ebp - 0x78]
call eax
jmp 0x40e80c
pop edi
lea ecx, [ebp - 0x16c]
call fcn.00401a42
mov edx, 0x74d881a2
mov ecx, edi
call fcn.00404bfc
mov edx, dword [ebp - 0xfc]
lea edi, [ebp - 0x400]
push 0x104
mov ecx, edx
inc edx
push edi
push ecx
push dword [ebp - 0xd0]
mov dword [ebp - 0xfc], edx
call eax
mov edi, dword [ebp - 4]
test eax, eax
je 0x40dfe2
push 4
mov edx, 0x59b26164
pop ecx
call fcn.00404bfc
push dword [ebp - 0xd0]
call eax
mov edx, 0x6e34153e
xor ecx, ecx
call fcn.00404bfc
push esi
call eax
lea ecx, [ebp - 0x184]
call fcn.00401a42
lea ecx, [ebp - 0x124]
call fcn.00401a42
lea ecx, [ebp - 0x1b4]
call fcn.00401a42
lea ecx, [ebp - 0x19c]
call fcn.00401a42
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret