Function at 0x4097c0
Capabilities:
Encode data using xor
Get common file path
Get startup folder
Set registry value

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 0x5f6b05
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1360
call fcn.0055f310
mov eax, dword [0x6817dc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x12fc], esi
push 0xc
lea ecx, [esi + 0x4e8]
mov dword [ebp - 0x12f8], 0
push 0x66500c
call fcn.00405d50
mov dword [ebp - 0x12e8], 0xf279d852
xor ecx, ecx
mov dword [ebp - 0x12e4], 0xd226
mov byte [ebp - 0x12e0], 1
nop word [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12e8], ax
inc ecx
cmp ecx, 3
jb 0x409850
xor eax, eax
mov byte [ebp - 0x12e0], 0
mov dword [ebp - 0x12f4], 0x3485f38d
xor ecx, ecx
mov dword [ebp - 0x12f0], 0xfba1ef1d
mov word [ebp - 0x12ec], ax
mov byte [ebp - 0x12ea], 1
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12f4], ax
inc ecx
cmp ecx, 4
jb 0x409891
mov byte [ebp - 0x12ea], 0
add esi, 0x4b8
mov dword [ebp - 4], 0
xor eax, eax
mov word [ebp - 0x12dc], ax
mov eax, dword [esi + 0x10]
inc eax
mov dword [ebp - 0x12cc], 0
mov dword [ebp - 0x12c8], 7
mov dword [ebp - 0x12f8], 1
cmp eax, 7
jbe 0x40990c
mov byte [ebp - 0x1298], 0
lea ecx, [ebp - 0x12dc]
push dword [ebp - 0x1298]
push eax
call fcn.0040e4d0
mov dword [ebp - 0x12cc], 0
push esi
lea ecx, [ebp - 0x12dc]
call fcn.0040bf20
mov edx, dword [ebp - 0x12c8]
mov eax, edx
mov ecx, dword [ebp - 0x12cc]
sub eax, ecx
cmp eax, 1
jb 0x409961
cmp edx, 8
lea esi, [ebp - 0x12dc]
push 2
cmovae esi, dword [ebp - 0x12dc]
lea edi, [ecx + 1]
push 0x664eac
mov dword [ebp - 0x12cc], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409982
push 1
push 0x664eac
mov byte [ebp - 0x1298], 0
lea ecx, [ebp - 0x12dc]
push dword [ebp - 0x1298]
push 1
call fcn.0040dcd0
mov eax, dword [ebp - 0x12fc]
lea ecx, [ebp - 0x12dc]
add eax, 0x4e8
push eax
call fcn.0040bf20
mov dword [ebp - 0x1280], 0
xor ecx, ecx
mov dword [ebp - 0x127c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1290], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1280], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x12c8]
cmp edx, 8
jb 0x409a1b
mov ecx, dword [ebp - 0x12dc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409a11
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a5c3
push edx
push ecx
call fcn.0055e71a
add esp, 8
xor eax, eax
mov dword [ebp - 0x12cc], 0
mov word [ebp - 0x12dc], ax
lea eax, [ebp - 0x1278]
push eax
mov dword [ebp - 0x12c8], 7
call fcn.00405ae0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1264]
mov eax, edx
mov ecx, dword [ebp - 0x1268]
sub eax, ecx
cmp eax, 1
jb 0x409a91
cmp edx, 8
lea esi, [ebp - 0x1278]
push 2
cmovae esi, dword [ebp - 0x1278]
lea edi, [ecx + 1]
push 0x664eac
mov dword [ebp - 0x1268], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409ab2
push 1
push 0x664eac
mov byte [ebp - 0x1298], 0
lea ecx, [ebp - 0x1278]
push dword [ebp - 0x1298]
push 1
call fcn.0040dcd0
lea ecx, [ebp - 0x12e8]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409ac0
mov eax, dword [ebp - 0x1264]
sub ecx, edx
mov edx, dword [ebp - 0x1268]
sub eax, edx
sar ecx, 1
cmp ecx, eax
ja 0x409b1d
cmp dword [ebp - 0x1264], 8
lea eax, [ecx + ecx]
push eax
lea esi, [ebp - 0x1278]
cmovae esi, dword [ebp - 0x1278]
lea eax, [ebp - 0x12e8]
push eax
lea edi, [ecx + edx]
mov dword [ebp - 0x1268], edi
lea eax, [esi + edx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409b3e
push ecx
lea eax, [ebp - 0x12e8]
mov byte [ebp - 0x1298], 0
push eax
push dword [ebp - 0x1298]
push ecx
lea ecx, [ebp - 0x1278]
call fcn.0040dcd0
mov edx, dword [ebp - 0x1264]
mov eax, edx
mov ecx, dword [ebp - 0x1268]
sub eax, ecx
cmp eax, 4
jb 0x409b87
cmp edx, 8
lea esi, [ebp - 0x1278]
push 8
cmovae esi, dword [ebp - 0x1278]
lea edi, [ecx + 4]
push str..lnk
mov dword [ebp - 0x1268], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409ba8
push 4
push str..lnk
mov byte [ebp - 0x1298], 0
lea ecx, [ebp - 0x1278]
push dword [ebp - 0x1298]
push 4
call fcn.0040dcd0
cmp dword [ebp - 0x1264], 8
lea ecx, [ebp - 0x1278]
lea eax, [ebp - 0x1290]
cmovae ecx, dword [ebp - 0x1278]
cmp dword [ebp - 0x127c], 8
push ecx
cmovae eax, dword [ebp - 0x1290]
push ecx
push eax
call fcn.00405820
mov byte [ebp - 4], 4
xor eax, eax
mov word [ebp - 0x12b8], ax
lea eax, [ebp - 0x1298]
push eax
push 0xb
push 0
mov dword [ebp - 0x12a8], 0
mov dword [ebp - 0x12a4], 7
mov dword [ebp - 0x12f8], 0xa
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x409c77
push 0x410
push eax
lea eax, [ebp - 0x630]
push eax
call fcn.005c9930
add esp, 0xc
lea eax, [ebp - 0x630]
push eax
push dword [ebp - 0x1298]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x1298]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea ecx, [ebp - 0x630]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409c55
sub ecx, edx
lea eax, [ebp - 0x630]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x12b8]
call fcn.00405d50
lea ecx, [ebp - 0x1278]
call fcn.00405c20
movups xmm0, xmmword [ebp - 0x12b8]
xor eax, eax
xor ecx, ecx
movups xmmword [ebp - 0x1278], xmm0
movq xmm0, qword [ebp - 0x12a8]
mov byte [ebp - 4], 3
movq qword [ebp - 0x1268], xmm0
mov dword [ebp - 0x12dc], 0xa1dea1d1
mov dword [ebp - 0x12d8], 0xa1ffa1fd
mov dword [ebp - 0x12d4], 0xa1e0a1f6
mov dword [ebp - 0x12d0], 0xa1f9a1f2
mov dword [ebp - 0x12cc], 0xa1caa1e6
mov word [ebp - 0x12c8], ax
mov byte [ebp - 0x12c6], 1
nop dword [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12dc], ax
inc ecx
cmp ecx, 0xa
jb 0x409cf0
xor eax, eax
mov byte [ebp - 0x12c6], 0
mov word [ebp - 0x12b8], ax
lea ecx, [ebp - 0x12b8]
push 0xa
lea eax, [ebp - 0x12dc]
mov dword [ebp - 0x12a8], 0
push eax
mov dword [ebp - 0x12a4], 7
call fcn.00405d50
lea eax, [ebp - 0x12b8]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x1278]
call fcn.0040bf20
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x12a4]
cmp edx, 8
jb 0x409d96
mov ecx, dword [ebp - 0x12b8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409d8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a5c8
push edx
push ecx
call fcn.0055e71a
add esp, 8
lea ecx, [ebp - 0x12e8]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409da0
mov eax, dword [ebp - 0x1264]
sub ecx, edx
mov edx, dword [ebp - 0x1268]
sub eax, edx
sar ecx, 1
cmp ecx, eax
ja 0x409dfd
cmp dword [ebp - 0x1264], 8
lea eax, [ecx + ecx]
push eax
lea esi, [ebp - 0x1278]
cmovae esi, dword [ebp - 0x1278]
lea eax, [ebp - 0x12e8]
push eax
lea edi, [ecx + edx]
mov dword [ebp - 0x1268], edi
lea eax, [esi + edx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409e1e
push ecx
lea eax, [ebp - 0x12e8]
mov byte [ebp - 0x1298], 0
push eax
push dword [ebp - 0x1298]
push ecx
lea ecx, [ebp - 0x1278]
call fcn.0040dcd0
mov edx, dword [ebp - 0x1264]
mov eax, edx
mov ecx, dword [ebp - 0x1268]
sub eax, ecx
cmp eax, 4
jb 0x409e67
cmp edx, 8
lea esi, [ebp - 0x1278]
push 8
cmovae esi, dword [ebp - 0x1278]
lea edi, [ecx + 4]
push str..lnk
mov dword [ebp - 0x1268], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005c9d10
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x409e88
push 4
push str..lnk
mov byte [ebp - 0x1298], 0
lea ecx, [ebp - 0x1278]
push dword [ebp - 0x1298]
push 4
call fcn.0040dcd0
cmp dword [ebp - 0x1264], 8
lea ecx, [ebp - 0x1278]
lea eax, [ebp - 0x1290]
cmovae ecx, dword [ebp - 0x1278]
cmp dword [ebp - 0x127c], 8
push ecx
cmovae eax, dword [ebp - 0x1290]
push ecx
push eax
call fcn.00405820
mov ecx, dword [ebp - 0x12fc]
cmp dword [ecx + 0x4fc], 8
lea eax, [ecx + 0x4e8]
jb 0x409ecf
mov eax, dword [eax]
cmp dword [ecx + 0x4cc], 8
lea esi, [ecx + 0x4b8]
mov ecx, esi
jb 0x409ee2
mov ecx, dword [esi]
push eax
push ecx
lea eax, [ebp - 0xa40]
push 0x664eb8
push eax
call fcn.00406620
add esp, 0x10
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x409f02
mov eax, dword [esi]
push eax
lea eax, [ebp - 0xe50]
push 0x665034
push eax
call fcn.00406620
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x409f1f
mov esi, dword [esi]
xor eax, eax
mov dword [ebp - 0x12c4], 0xa1fda1a8
mov dword [ebp - 0x12c0], 0xa1c5a1d3
xor ecx, ecx
mov dword [ebp - 0x12bc], 0xa1fba1ff
mov dword [ebp - 0x12b8], 0xa1e7a1fd
mov dword [ebp - 0x12b4], 0xa1f7a1e1
mov dword [ebp - 0x12b0], 0xa1f4a1fb
mov dword [ebp - 0x12ac], 0xa1ffa1b7
mov dword [ebp - 0x12a8], 0xa1f9a1e3
mov word [ebp - 0x12a4], ax
mov byte [ebp - 0x12a2], 1
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12c4], ax
inc ecx
cmp ecx, 0x10
jb 0x409f81
push esi
lea eax, [ebp - 0x12c4]
mov byte [ebp - 0x12a2], 0
push eax
lea eax, [ebp - 0x1260]
push eax
call fcn.00406620
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x208
push 0
push eax
call fcn.005c9930
xor eax, eax
mov dword [ebp - 0x12d8], 0xa1fba1f7
add esp, 0xc
mov dword [ebp - 0x12d4], 0xa1f1a1e7
mov dword [ebp - 0x12d0], 0xa1e5a1fe
xor ecx, ecx
mov dword [ebp - 0x12cc], 0xa1faa1f2
mov word [ebp - 0x12c8], ax
mov byte [ebp - 0x12c6], 1
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12d8], ax
inc ecx
cmp ecx, 8
jb 0x40a010
xor eax, eax
mov byte [ebp - 0x12c6], 0
mov dword [ebp - 0x1370], 0xa1c1a1de
xor ecx, ecx
mov dword [ebp - 0x136c], 0xa1c4a1c9
mov dword [ebp - 0x1368], 0xa1d3a1c6
mov dword [ebp - 0x1364], 0xa1d1a1c1
mov dword [ebp - 0x1360], 0xa1dba1c9
mov dword [ebp - 0x135c], 0xa1fba1fe
mov dword [ebp - 0x1358], 0xa1f5a1eb
mov dword [ebp - 0x1354], 0xa1f3a1e8
mov dword [ebp - 0x1350], 0xa1eaa1fb
mov dword [ebp - 0x134c], 0xa1f7a1c3
mov dword [ebp - 0x1348], 0xa1cca1c8
mov dword [ebp - 0x1344], 0xa1cba1c7
mov dword [ebp - 0x1340], 0xa1d5a1d2
mov dword [ebp - 0x133c], 0xa1eba1fb
mov dword [ebp - 0x1338], 0xa1d8a1dc
mov dword [ebp - 0x1334], 0xa1c9a1d9
mov dword [ebp - 0x1330], 0xa1daa1c3
mov dword [ebp - 0x132c], 0xa1d5a1f9
mov dword [ebp - 0x1328], 0xa1c1a1c3
mov dword [ebp - 0x1324], 0xa1dba1da
mov dword [ebp - 0x1320], 0xa1eaa1db
mov dword [ebp - 0x131c], 0xa1d6a1e2
mov dword [ebp - 0x1318], 0xa1d4a1d0
mov dword [ebp - 0x1314], 0xa1c8a1c8
mov dword [ebp - 0x1310], 0xa1d2a1dc
mov dword [ebp - 0x130c], 0xa19ca1d3
mov dword [ebp - 0x1308], 0xa1b1a1e4
mov word [ebp - 0x1304], ax
mov byte [ebp - 0x1302], 1
nop dword [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x1370], ax
inc ecx
cmp ecx, 0x36
jb 0x40a150
lea eax, [ebp - 0x12d8]
mov byte [ebp - 0x1302], 0
push eax
lea eax, [ebp - 0x1370]
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00406620
add esp, 0xc
lea eax, [ebp - 0x1294]
push eax
lea eax, [ebp - 0x129c]
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x220]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x40a4ff
mov dword [ebp - 0x12bc], 0xa1e7a1c9
xor ecx, ecx
mov dword [ebp - 0x12b8], 0xa1e0a1fc
mov dword [ebp - 0x12b4], 0xa1f3a1fd
mov dword [ebp - 0x12b0], 0xa1dda1ea
mov dword [ebp - 0x12ac], 0xa1f9a1f6
mov dword [ebp - 0x12a8], 0xa1f9
mov byte [ebp - 0x12a4], 1
nop dword [eax]
nop word [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12bc], ax
inc ecx
cmp ecx, 0xb
jb 0x40a210
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0xa40]
push eax
mov byte [ebp - 0x12a4], 0
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0xa40]
push eax
push 1
push 0
lea eax, [ebp - 0x12bc]
push eax
push dword [ebp - 0x129c]
call edi
test eax, eax
jne 0x40a4ff
mov dword [ebp - 0x12bc], 0xa1e7a1c9
xor ecx, ecx
mov dword [ebp - 0x12b8], 0xa1e0a1fc
mov dword [ebp - 0x12b4], 0xa1f3a1fd
mov dword [ebp - 0x12b0], 0xa1daa1ea
mov dword [ebp - 0x12ac], 0xa1fba1f4
mov dword [ebp - 0x12a8], 0xa1f2
mov byte [ebp - 0x12a4], 1
nop
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12bc], ax
inc ecx
cmp ecx, 0xb
jb 0x40a2b0
lea eax, [ebp - 0x12e8]
mov byte [ebp - 0x12a4], 0
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0x12e8]
push eax
push 1
push 0
lea eax, [ebp - 0x12bc]
push eax
push dword [ebp - 0x129c]
call edi
test eax, eax
jne 0x40a4ff
mov dword [ebp - 0x12c4], 0xa1e0a1c4
xor ecx, ecx
mov dword [ebp - 0x12c0], 0xa1e4a1fc
mov dword [ebp - 0x12bc], 0xa1fea1f0
mov dword [ebp - 0x12b8], 0xa1d8a1ff
mov dword [ebp - 0x12b4], 0xa1f5a1fa
mov dword [ebp - 0x12b0], 0xa1eca1f6
mov dword [ebp - 0x12ac], 0xa1f5a1f0
mov dword [ebp - 0x12a8], 0xa1f5
mov byte [ebp - 0x12a4], 1
nop word [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12c4], ax
inc ecx
cmp ecx, 0xf
jb 0x40a360
lea eax, [ebp - 0xe50]
mov byte [ebp - 0x12a4], 0
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0xe50]
push eax
push 1
push 0
lea eax, [ebp - 0x12c4]
push eax
push dword [ebp - 0x129c]
call edi
test eax, eax
jne 0x40a4ff
mov dword [ebp - 0x12dc], 0xa1fba1dd
xor ecx, ecx
mov dword [ebp - 0x12d8], 0xa1fca1ed
mov dword [ebp - 0x12d4], 0xa1e1a1f8
mov dword [ebp - 0x12d0], 0xa1f1a1fb
mov dword [ebp - 0x12cc], 0xa1e7
mov byte [ebp - 0x12c8], 1
nop dword [eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12dc], ax
inc ecx
cmp ecx, 9
jb 0x40a3f0
lea eax, [ebp - 0x12f4]
mov byte [ebp - 0x12c8], 0
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0x12f4]
push eax
push 1
push 0
lea eax, [ebp - 0x12dc]
push eax
push dword [ebp - 0x129c]
call edi
test eax, eax
jne 0x40a4ff
mov dword [ebp - 0x12c4], 0xa1e0a1d8
xor ecx, ecx
mov dword [ebp - 0x12c0], 0xa1fea1e6
mov dword [ebp - 0x12bc], 0xa1e6a1e2
mov dword [ebp - 0x12b8], 0xa1f8a1f2
mov dword [ebp - 0x12b4], 0xa1c5a1f9
mov dword [ebp - 0x12b0], 0xa1eaa1e3
mov dword [ebp - 0x12ac], 0xa1f4a1f0
mov dword [ebp - 0x12a8], 0xa1fc
mov byte [ebp - 0x12a4], 1
nop word [eax + eax]
lea eax, [ecx - 0x5e73]
xor word [ebp + ecx*2 - 0x12c4], ax
inc ecx
cmp ecx, 0xf
jb 0x40a4a0
lea eax, [ebp - 0x1260]
mov byte [ebp - 0x12a4], 0
push eax
call esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ebp - 0x1260]
push eax
push 1
push 0
lea eax, [ebp - 0x12c4]
push eax
push dword [ebp - 0x129c]
call edi
test eax, eax
jne 0x40a4ff
push dword [ebp - 0x129c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 0x129d], 1
jmp 0x40a506
mov byte [ebp - 0x129d], 0
mov edx, dword [ebp - 0x1264]
cmp edx, 8
jb 0x40a546
mov ecx, dword [ebp - 0x1278]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a53c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a5cd
push edx
push ecx
call fcn.0055e71a
add esp, 8
mov edx, dword [ebp - 0x127c]
xor eax, eax
mov dword [ebp - 0x1268], 0
mov dword [ebp - 0x1264], 7
mov word [ebp - 0x1278], ax
cmp edx, 8
jb 0x40a59f
mov ecx, dword [ebp - 0x1290]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a595
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a5d2
push edx
push ecx
call fcn.0055e71a
add esp, 8
mov al, byte [ebp - 0x129d]
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.0055e6d4
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.005ce7a3
call fcn.005ce7a3
call fcn.005ce7a3
call fcn.005ce7a3
int3