Function at 0x402410
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get graphical window text
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x407c8d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xbd8
mov eax, dword [0x40f040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x81c], 0
push str.f4df83a515a45b15a5efbc1c4918570e6a1b446f29980020ac0c2eab5533dd80
lea ecx, [ebp - 0xbe8]
movq qword [ebp - 0x824], xmm0
call fcn.00404cd0
push str.561d7ed7495793b77a42d99d1008be56f499dfc074afb389434e4b7b8272fa8c
lea ecx, [ebp - 0xbd0]
mov dword [ebp - 4], 0
call fcn.00404cd0
push str.3843971dcfdee5083e6289e1bbdbb003e538b5a8a668fc43ae4f19d415ac18a2
lea ecx, [ebp - 0xbb8]
mov byte [ebp - 4], 1
call fcn.00404cd0
push str.ca339089c62e9a993bb7317aee9c4776132c7d20e091d2aaf604d28128d26aae
lea ecx, [ebp - 0xba0]
mov byte [ebp - 4], 2
call fcn.00404cd0
push str.d667bec65652da9eef1461cdc4007601831d7b8290709173850c166503010cdc
lea ecx, [ebp - 0xb88]
mov byte [ebp - 4], 3
call fcn.00404cd0
push str.48548e9449a07dde502bc05e645801a0645acac87934163dcee8fe7d1793f7d2
lea ecx, [ebp - 0xb70]
mov byte [ebp - 4], 4
call fcn.00404cd0
push str.6832f89e4fc9260155039fdac0dc30668e0492f5e8e4e9d406f70aa329de4d10
lea ecx, [ebp - 0xb58]
mov byte [ebp - 4], 5
call fcn.00404cd0
push str.a8d79f40ddb79de569d778f1c0b832f9cc266b32274b702cff4ba2b8a0dd1549
lea ecx, [ebp - 0xb40]
mov byte [ebp - 4], 6
call fcn.00404cd0
push str.41b77e508167afdd1a6429a26c849c1ae70e98e530fd5fbea9e80f76a2fdcd94
lea ecx, [ebp - 0xb28]
mov byte [ebp - 4], 7
call fcn.00404cd0
push str.6a5cfa3e6a632019ba002928ade396101759ad5ec7c8fc51345d855e6944a1e0
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 8
call fcn.00404cd0
push str.7a59b422cc7bc63a2a16aa8d105d411aeda587a642bbdd36f06751ea862153a0
lea ecx, [ebp - 0xaf8]
mov byte [ebp - 4], 9
call fcn.00404cd0
push str.c4449030867c84e5a072f704abd69e5d75d84040a884790df11ff7cdd2244905
lea ecx, [ebp - 0xae0]
mov byte [ebp - 4], 0xa
call fcn.00404cd0
push str.6a9bb179400afb21957db1e9f878f0c8a7dd1bb443303855c43e0597647a3457
lea ecx, [ebp - 0xac8]
mov byte [ebp - 4], 0xb
call fcn.00404cd0
push str.c0dacf8b7f3f4c08339a82135216a7f3f435abedf81b5307cd9e95bd2f7e9666
lea ecx, [ebp - 0xab0]
mov byte [ebp - 4], 0xc
call fcn.00404cd0
push str.93a47d545b33e73acceb0b1a239b205bf3af0041f308607fe5ee81078baf687d
lea ecx, [ebp - 0xa98]
mov byte [ebp - 4], 0xd
call fcn.00404cd0
push str.59a2ea36c20b30a30f3aa251b346188d5afbeddfca2d496e67b0c2d9eb74a345
lea ecx, [ebp - 0xa80]
mov byte [ebp - 4], 0xe
call fcn.00404cd0
push str.561d7ed7495793b77a42d99d1008be56f499dfc074afb389434e4b7b8272fa8c
lea ecx, [ebp - 0xa68]
mov byte [ebp - 4], 0xf
call fcn.00404cd0
push str.e914de1f077f89f2a8bd8b718ed9de105f30e898c52e579bb885dd39954799fe
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 0x10
call fcn.00404cd0
push str.c02c4e35c9261d12e2bbfd020e2a31c738d7697d8588847f1d5eca29ca6e5c95
lea ecx, [ebp - 0xa38]
mov byte [ebp - 4], 0x11
call fcn.00404cd0
push str.487f6c1880faf539e4e11712443a4d55b6ae4e3088ed5cf705bcf3c5e2e88a73
lea ecx, [ebp - 0xa20]
mov byte [ebp - 4], 0x12
call fcn.00404cd0
push str.2bca49a8187b8d7cffa4c61e6a2954a645d3c30ff1b97bb95dcb3faae3829776
lea ecx, [ebp - 0xa08]
mov byte [ebp - 4], 0x13
call fcn.00404cd0
push str.c54e87cc84b5a9c94843dee839d9f01967b80d2f5512dcb2b260be3685f5eb77
lea ecx, [ebp - 0x9f0]
mov byte [ebp - 4], 0x14
call fcn.00404cd0
push str.1a434e36818416cf604d98afeec063273747936476018b52f81a4a0b02c7b842
lea ecx, [ebp - 0x9d8]
mov byte [ebp - 4], 0x15
call fcn.00404cd0
push str.5619f8026f7a8df09ed2f3114fb9af7e833add1fab8178f2e3d4987d640140e7
lea ecx, [ebp - 0x9c0]
mov byte [ebp - 4], 0x16
call fcn.00404cd0
push str.6335c115ac295845ae036f8620fbdb87e898fe6a44a45e74955318d48d9fdbff
lea ecx, [ebp - 0x9a8]
mov byte [ebp - 4], 0x17
call fcn.00404cd0
push str.b0c5238e4f2c185b989e5b928ab3884e8ad9d73f29853c61c59c63a9f24775b1
lea ecx, [ebp - 0x990]
mov byte [ebp - 4], 0x18
call fcn.00404cd0
push str.bac37468bac70726b55f3078fb4315e84a3f4d86f24cdd0bbcb76077479217a4
lea ecx, [ebp - 0x978]
mov byte [ebp - 4], 0x19
call fcn.00404cd0
push str.24126f150c31273c5678cc85aa0860c5eca446c449be13c9e691459467408951
lea ecx, [ebp - 0x960]
mov byte [ebp - 4], 0x1a
call fcn.00404cd0
push str.05294590979827d5ac9d3238adee4ab11363976fb1d58bb895d01088d65c6c5f
lea ecx, [ebp - 0x948]
mov byte [ebp - 4], 0x1b
call fcn.00404cd0
push str.84a985719c18791e7bb2232d61189add95049c68e37373c8ec03c1ee993ac778
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0x1c
call fcn.00404cd0
push str.b72ce49780f6734e27870aa9161a115afdc5d613c390989eea647cc5410719fa
lea ecx, [ebp - 0x918]
mov byte [ebp - 4], 0x1d
call fcn.00404cd0
push str.547a23e8e82e5b78634371447072056115fd126f04e6fb851422b3f81cd62fdb
lea ecx, [ebp - 0x900]
mov byte [ebp - 4], 0x1e
call fcn.00404cd0
push str.d7f2ac28ebb6c07d53cc4414673c7b66a1f66198a37ad263582bc296c4eb212c
lea ecx, [ebp - 0x8e8]
mov byte [ebp - 4], 0x1f
call fcn.00404cd0
push str.91f6964003aa5cb5badce216331ce8e6cac5f36a57797c2538fd87585c2ec281
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 0x20
call fcn.00404cd0
push str.e448ebde783881aac728eda14659e412c88c6bf51e51154c4fa8be9bacf53871
lea ecx, [ebp - 0x8b8]
mov byte [ebp - 4], 0x21
call fcn.00404cd0
push str.6bc2ebdf728acc9c782a06f7e0b42757ead49af4f810f8deca7d9685ce13dd39
lea ecx, [ebp - 0x8a0]
mov byte [ebp - 4], 0x22
call fcn.00404cd0
push str.1c2bf84496ba5c94abbaeaa2d624098dbabf0677b8844e22cc55b6623df73d15
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x23
call fcn.00404cd0
lea ecx, [ebp - 0xbe8]
mov dword [ebp - 4], 0x24
push ecx
lea eax, [ebp - 0x870]
push eax
push ecx
lea ecx, [ebp - 0x824]
call fcn.00404410
push 0x404c70
push 0x25
push 0x18
lea eax, [ebp - 0xbe8]
mov byte [ebp - 4], 0x26
push eax
call fcn.004066dc
xorps xmm0, xmm0
lea ecx, [ebp - 0x844]
movups xmmword [ebp - 0x844], xmm0
movups xmmword [ebp - 0x834], xmm0
call fcn.00401ca0
mov byte [ebp - 4], 0x27
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x4028da
push 0x3ff
lea ecx, [ebp - 0x818]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
test eax, eax
je 0x4028da
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x85c]
call fcn.00404cd0
mov esi, dword [ebp - 0x824]
mov dword [ebp - 0x868], esi
cmp esi, dword [ebp - 0x820]
je 0x402886
nop word [eax + eax]
cmp dword [esi + 0x14], 7
mov dword [ebp - 0x864], esi
jbe 0x402814
mov eax, dword [esi]
mov dword [ebp - 0x864], eax
mov edi, dword [esi + 0x10]
mov edx, 0x811c9dc5
mov eax, 0
add edi, edi
je 0x402847
mov esi, dword [ebp - 0x864]
nop dword [eax + eax]
movzx ecx, byte [esi + eax]
inc eax
xor ecx, edx
imul edx, ecx, 0x1000193
cmp eax, edi
jb 0x402830
mov esi, dword [ebp - 0x868]
push edx
push esi
lea eax, [ebp - 0x870]
push eax
lea ecx, [ebp - 0x844]
call fcn.004064d0
mov ecx, dword [ebp - 0x840]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [ebp - 0x840]
jne 0x4028c5
add esi, 0x18
mov dword [ebp - 0x868], esi
cmp esi, dword [ebp - 0x820]
jne 0x402800
mov byte [ebp - 0x85d], 0
mov ecx, dword [ebp - 0x848]
cmp ecx, 7
jbe 0x4028e1
mov edx, dword [ebp - 0x85c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4028ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4028ce
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov byte [ebp - 0x85d], 1
jmp 0x40288d
push ecx
push edx
call fcn.004067f1
add esp, 8
jmp 0x4028e1
mov byte [ebp - 0x85d], 0
lea ecx, [ebp - 0x844]
call fcn.00403830
lea ecx, [ebp - 0x824]
call fcn.00405470
mov al, byte [ebp - 0x85d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040669e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret