Function at 0x40a4fe
Capabilities:
Contain obfuscated stackstrings

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, 0x1b8
push esi
mov dword [ebp - 0x34], ecx
mov edx, 0xd66878cf
push edi
xor ecx, ecx
call fcn.00404bfc
mov esi, dword [ebx + 8]
mov edx, esi
cmp dword [esi + 0x14], 0xf
jbe 0x40a537
mov edx, dword [esi]
push edx
call eax
cmp eax, 0xffffffff
je 0x40a543
test al, 0x10
jne 0x40a55e
mov edx, 0x29158ba4
xor ecx, ecx
call fcn.00404bfc
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x40a559
mov ecx, dword [esi]
push 0
push ecx
call eax
push 8
mov al, 0x49
mov dword [ebp - 0xa], 0x6e4d6549
mov dword [ebp - 6], 0x787d747c
xor ecx, ecx
mov word [ebp - 2], 0x79
pop esi
movsx eax, al
and eax, 0x8000000f
jns 0x40a588
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 9], al
inc ecx
cmp ecx, esi
jae 0x40a596
mov al, byte [ebp - 0xa]
jmp 0x40a579
mov edi, 0xdc739472
mov byte [ebp - 1], 0
mov edx, edi
lea ecx, [ebp - 0xac]
call fcn.004146c6
lea ecx, [ebp - 9]
mov edx, eax
push ecx
lea ecx, [ebp - 0x1b8]
call fcn.00404203
pop ecx
mov cl, 9
mov dword [ebp - 0xc], 0x664d5509
mov dword [ebp - 8], 0x6c647c6a
xor eax, eax
mov dword [ebp - 4], 0x7a7d67
xor byte [ebp + eax - 0xb], cl
inc eax
cmp eax, 0xa
jae 0x40a5e6
mov cl, byte [ebp - 0xc]
jmp 0x40a5d7
mov edx, edi
mov byte [ebp - 1], 0
lea ecx, [ebp - 0x94]
call fcn.004146c6
lea ecx, [ebp - 0xb]
mov edx, eax
push ecx
lea ecx, [ebp - 0x1a0]
call fcn.00404203
pop ecx
mov al, 0x32
mov dword [ebp - 0xb], 0x6b525e32
mov dword [ebp - 7], 0x74777665
xor ecx, ecx
mov word [ebp - 3], 0x7567
mov byte [ebp - 1], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40a634
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xa], al
inc ecx
cmp ecx, 9
jae 0x40a643
mov al, byte [ebp - 0xb]
jmp 0x40a625
mov edx, edi
mov byte [ebp - 1], 0
lea ecx, [ebp - 0xf4]
call fcn.004146c6
lea ecx, [ebp - 0xa]
mov edx, eax
push ecx
lea ecx, [ebp - 0x188]
call fcn.00404203
pop ecx
mov al, 0x2e
mov dword [ebp - 9], 0x77646a2e
mov dword [ebp - 5], 0x817d7372
xor ecx, ecx
mov byte [ebp - 1], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40a68b
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 8], al
inc ecx
cmp ecx, 7
jae 0x40a69a
mov al, byte [ebp - 9]
jmp 0x40a67c
mov edx, edi
mov byte [ebp - 1], 0
lea ecx, [ebp - 0xdc]
call fcn.004146c6
lea ecx, [ebp - 8]
mov edx, eax
push ecx
lea ecx, [ebp - 0x170]
call fcn.00404203
pop ecx
push 0x6e
pop eax
push 0x6f
pop ecx
mov byte [ebp - 4], cl
xor ecx, ecx
mov byte [ebp - 0xc], al
mov dword [ebp - 0xb], 0x857d526a
mov word [ebp - 7], 0x7a7c
mov byte [ebp - 5], 0x7d
mov word [ebp - 3], 0x8172
mov byte [ebp - 1], 0
movsx eax, al
and eax, 0x8000000f
jns 0x40a6f5
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 0xb], al
inc ecx
cmp ecx, 0xa
jae 0x40a704
mov al, byte [ebp - 0xc]
jmp 0x40a6e6
mov edx, edi
mov byte [ebp - 1], 0
lea ecx, [ebp - 0xc4]
call fcn.004146c6
lea ecx, [ebp - 0xb]
mov edx, eax
push ecx
lea ecx, [ebp - 0x158]
call fcn.00404203
pop ecx
mov cl, 0x30
mov dword [ebp - 0x24], 0x74036c30
mov dword [ebp - 0x20], 0x5a527f10
xor eax, eax
mov dword [ebp - 0x1c], 0x43445355
mov byte [ebp - 0x18], 0
xor byte [ebp + eax - 0x23], cl
inc eax
cmp eax, 0xb
jae 0x40a753
mov cl, byte [ebp - 0x24]
jmp 0x40a744
mov edx, edi
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x4c]
call fcn.004146c6
lea ecx, [ebp - 0x23]
mov edx, eax
push ecx
lea ecx, [ebp - 0x140]
call fcn.00404203
pop ecx
mov al, 0x29
mov dword [ebp - 0xa], 0x7b4d6529
mov dword [ebp - 6], 0x786b7978
xor ecx, ecx
mov word [ebp - 2], 0x81
movsx eax, al
and eax, 0x8000000f
jns 0x40a79a
dec eax
or eax, 0xfffffff0
inc eax
sub byte [ebp + ecx - 9], al
inc ecx
cmp ecx, esi
jae 0x40a7a8
mov al, byte [ebp - 0xa]
jmp 0x40a78b
mov edx, edi
mov byte [ebp - 1], 0
lea ecx, [ebp - 0x64]
call fcn.004146c6
lea ecx, [ebp - 9]
mov edx, eax
push ecx
lea ecx, [ebp - 0x128]
call fcn.00404203
pop ecx
push 0x44
pop ecx
xor edx, edx
mov byte [ebp - 0xb], cl
mov dword [ebp - 0xa], 0x212a0b18
mov eax, edx
mov dword [ebp - 6], 0x322d3600
mov word [ebp - 2], 0x21
xor byte [ebp + eax - 0xa], cl
inc eax
cmp eax, 9
jae 0x40a7f5
mov cl, byte [ebp - 0xb]
jmp 0x40a7e6
mov byte [ebp - 1], dl
lea ecx, [ebp - 0x7c]
mov edx, edi
call fcn.004146c6
lea ecx, [ebp - 0xa]
mov edx, eax
push ecx
lea ecx, [ebp - 0x110]
call fcn.00404203
pop ecx
xor eax, eax
mov ecx, 0xc0
mov dword [ebp - 0x20], eax
call fcn.00401c16
mov esi, eax
mov edi, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], edi
lea edi, [ebp - 0x1b8]
lea ecx, [esi + 0xc0]
mov dword [ebp - 0x1c], ecx
push edi
mov ecx, esi
call fcn.004025ee
add edi, 0x18
lea eax, [ebp - 0xf8]
add esi, 0x18
cmp edi, eax
jne 0x40a83c
push 8
mov dword [ebp - 0x10], esi
mov edi, eax
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x24]
pop eax
dec eax
sub edi, 0x18
mov ecx, edi
mov dword [ebp - 0x30], eax
call fcn.00401a42
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40a862
lea ecx, [ebp - 0x7c]
call fcn.00401a42
lea ecx, [ebp - 0x64]
call fcn.00401a42
lea ecx, [ebp - 0x4c]
call fcn.00401a42
lea ecx, [ebp - 0xc4]
call fcn.00401a42
lea ecx, [ebp - 0xdc]
call fcn.00401a42
lea ecx, [ebp - 0xf4]
call fcn.00401a42
lea ecx, [ebp - 0x94]
call fcn.00401a42
lea ecx, [ebp - 0xac]
call fcn.00401a42
mov edi, dword [ebp - 0x10]
jmp 0x40aa7c
mov edx, 0xd66878cf
xor ecx, ecx
call fcn.00404bfc
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x40a8e4
mov ecx, dword [esi]
push ecx
call eax
cmp eax, 0xffffffff
je 0x40aa79
test al, 0x10
je 0x40aa79
mov cl, 0x1d
mov dword [ebp - 0x14], 0x32411d
xor eax, eax
xor byte [ebp + eax - 0x13], cl
inc eax
cmp eax, 2
jae 0x40a912
mov cl, byte [ebp - 0x14]
jmp 0x40a903
push 0xffffffffffffffff
push ecx
push ecx
lea eax, [ebp - 0x13]
mov byte [ebp - 0x11], 0
push eax
mov ecx, esi
call fcn.00403d6d
add esp, 4
mov ecx, esi
inc eax
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00403d20
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x7c]
push eax
push 0
push esi
lea eax, [ebp - 0x64]
push eax
call fcn.0040a115
xor edx, edx
mov dword [ebp - 6], 0x5b570d23
mov dword [ebp - 0x30], edx
mov cl, 0x23
mov word [ebp - 2], 0x57
mov eax, edx
xor byte [ebp + eax - 5], cl
inc eax
cmp eax, 4
jae 0x40a96d
mov cl, byte [ebp - 6]
jmp 0x40a95e
mov al, 0xc
mov byte [ebp - 1], dl
mov byte [ebp - 0x27], al
mov cl, 0x68
movsx eax, al
mov byte [ebp - 0x25], dl
and eax, 0x8000000f
jns 0x40a989
dec eax
or eax, 0xfffffff0
inc eax
sub cl, al
mov byte [ebp - 0x25], dl
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x26]
mov byte [ebp - 0x26], cl
push eax
lea ecx, [ebp - 0x94]
call fcn.004026c8
pop ecx
mov edx, eax
lea ecx, [ebp - 0xac]
call fcn.00402714
pop ecx
lea ecx, [ebp - 5]
mov edx, eax
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00404203
pop ecx
lea ecx, [ebp - 0xac]
call fcn.00401a42
lea ecx, [ebp - 0x94]
call fcn.00401a42
push 0x6f
pop eax
mov byte [ebp - 0x2a], al
mov cl, 0x86
movsx eax, al
mov byte [ebp - 0x28], 0
and eax, 0x8000000f
jns 0x40a9f6
dec eax
or eax, 0xfffffff0
inc eax
sub cl, al
mov byte [ebp - 0x28], 0
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
mov byte [ebp - 0x29], cl
lea ecx, [ebp - 0x29]
cmova eax, dword [ebp - 0x4c]
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
add esp, 0xc
test eax, eax
jne 0x40aa61
cmp dword [ebp - 0x50], 0xf
lea edx, [ebp - 0x64]
mov cl, 0x7a
mov dword [ebp - 0x10], 0x95f7a
cmova edx, dword [ebp - 0x64]
xor byte [ebp + eax - 0xf], cl
inc eax
cmp eax, 2
jae 0x40aa43
mov cl, byte [ebp - 0x10]
jmp 0x40aa34
push edx
lea eax, [ebp - 0xf]
mov byte [ebp - 0xd], 0
push eax
push dword [ebp - 0x30]
call fcn.00407771
add esp, 0xc
push dword [ebp - 0x30]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
pop ecx
lea ecx, [ebp - 0x4c]
call fcn.00401a42
lea ecx, [ebp - 0x64]
call fcn.00401a42
lea ecx, [ebp - 0x7c]
call fcn.00401a42
add esi, 0x18
cmp esi, edi
jne 0x40a8ce
lea ecx, [ebp - 0x24]
call fcn.00403eea
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4