Function at 0x404b30
Capabilities:
Create thread
Get common file path

Disassembly:
sub esp, 0x558
mov eax, dword [str.WindowPmrClass]
mov ecx, dword [0x41eacc]
mov edx, dword [0x41ead0]
push ebx
mov dword [esp + 0x15c], eax
mov ax, word [0x41ead4]
mov dword [esp + 0x160], ecx
mov cl, byte [0x41ead6]
push ebp
push esi
push edi
mov word [esp + 0x174], ax
mov byte [esp + 0x176], cl
mov ebx, dword [esp + 0x56c]
mov ecx, 0xfc
xor eax, eax
lea edi, [esp + 0x177]
mov dword [esp + 0x170], edx
rep stosd dword es:[edi], eax
push 0x41f6a4
push 0x400
stosb byte es:[edi], al
mov dword [0x5247d8], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x41f6a4
push str.WindowPmrClass
lea edx, [esp + 0x170]
push str._s_s
push edx
call fcn.00405bef
add esp, 0x10
lea eax, [esp + 0x168]
push 0
push eax
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x404beb
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x558
ret 0x10
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x1c]
push 0x7f00
rep stosd dword es:[edi], eax
push eax
mov dword [esp + 0x24], 0x30
mov dword [esp + 0x2c], 0x403db0
mov dword [esp + 0x38], ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov edx, dword [0x5247d8]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0x168]
push 0x41eab8
push edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 6
mov dword [esp + 0x4c], ecx
call esi
push 0x41eab0
mov dword [esp + 0x38], eax
mov eax, dword [0x5247d8]
push eax
call esi
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x4c], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x404c8b
push 0x30
push str.Error_
push str.Window_Registration_Failed_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x558
ret 0x10
push 0x41ea88
push str.init.bin
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x404cbb
push esi
push 1
push 0x44
push 0x40e038
call fcn.00405edb
push esi
call fcn.00405e85
add esp, 0x14
push 0x41ea78
push str.mic.txt
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x404cfc
push esi
lea edx, [esp + 0x6c]
push 0x100
push edx
call fcn.00405e2e
push esi
call fcn.00405e85
lea eax, [esp + 0x78]
push eax
call fcn.00405de1
fstp qword [0x41e8e8]
add esp, 0x14
push 0x41ea78
push str.din.txt
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x404d3d
push esi
lea ecx, [esp + 0x6c]
push 0x100
push ecx
call fcn.00405e2e
push esi
call fcn.00405e85
lea edx, [esp + 0x78]
push edx
call fcn.00405de1
fstp qword [0x41e8f0]
add esp, 0x14
push 0x41ea78
push str.speed.txt
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x404d7d
push esi
lea eax, [esp + 0x6c]
push 0x100
push eax
call fcn.00405e2e
push esi
call fcn.00405e85
lea ecx, [esp + 0x78]
push ecx
call fcn.00405ccc
add esp, 0x14
mov dword [0x5c49a0], eax
push 0x41ea78
push str.root.txt
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x404dbd
push esi
lea edx, [esp + 0x6c]
push 0x100
push edx
call fcn.00405e2e
push esi
call fcn.00405e85
lea eax, [esp + 0x78]
push eax
call fcn.00405ccc
add esp, 0x14
mov dword [0x5c499c], eax
mov eax, dword [0x40e038]
mov edi, closesocket
test eax, eax
jge 0x404dd1
mov dword [0x40e038], edi
mov eax, dword [0x40e03c]
test eax, eax
jge 0x404de0
mov dword [0x40e03c], edi
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call ebp
push 0
push ebx
push 0
push 0
push 0x1e0
push 0xb4
push edi
push edi
push 0x10ca0080
lea ecx, [esp + 0x18c]
push 0x41ea4c
push ecx
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
jne 0x404e43
push 0x30
push str.Error_
push str.Window_Creation_Failed_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x558
ret 0x10
mov esi, dword [0x40e058]
lea ecx, [esi - 1]
cmp ecx, 7
ja case.default.0x404e51
jmp dword [ecx*4 + 0x405028]
mov ecx, dword [0x40e05c]
jmp 0x404e9e
mov ecx, dword [0x40e060]
jmp 0x404e9e
mov ecx, dword [0x40e064]
jmp 0x404e9e
mov ecx, dword [0x40e068]
jmp 0x404e9e
mov ecx, dword [0x40e06c]
jmp 0x404e9e
mov ecx, dword [0x40e070]
jmp 0x404e9e
mov ecx, dword [0x40e074]
jmp 0x404e9e
mov ecx, dword [0x40e078]
jmp 0x404e9e
mov ecx, dword [0x40e048]
mov edx, ecx
mov dword [0x50d0a0], eax
and edx, 0xf
mov dword [0x5c494c], edx
shr ecx, 4
lea edx, [esi + edx*8]
mov dword [0x5c4950], ecx
mov dword [0x5c4994], edx
mov dword [0x5c4998], ecx
call fcn.00401020
mov eax, dword [0x40e044]
add eax, 0xfffffe6e
push eax
call fcn.00401dd0
mov ecx, dword [0x40e040]
add ecx, 0xfffffe0a
push ecx
call fcn.00401e70
mov dx, word [0x41e8d8]
push edx
push 0x50d090
call fcn.00401070
add esp, 0x10
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0x4052c0
push 0
push 0
call esi
push 0x100
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0x405050
push 0
push 0
call esi
lea edx, [esp + 0x14]
push edx
push 0
push 0
push 0x405ad0
push 0
push 0
call esi
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea eax, [esp + 0x54]
push 0
push eax
call esi
test eax, eax
jle 0x404f97
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x4c]
push ecx
call edi
lea edx, [esp + 0x4c]
push edx
call ebx
push 0
push 0
lea eax, [esp + 0x54]
push 0
push eax
call esi
test eax, eax
jg 0x404f73
mov edi, closesocket
mov ecx, dword [0x50d090]
push ecx
call fcn.00401150
add esp, 4
call sub.WS2_32.dll_WSACleanup
call fcn.00401cc0
call fcn.00401d00
push 0x1f4
call ebp
mov edx, dword [0x40e038]
mov eax, dword [0x41faac]
cmp edx, eax
jle 0x404fd1
mov dword [0x40e038], edi
mov eax, dword [0x40e03c]
mov ecx, dword [0x41faa8]
cmp eax, ecx
jle 0x404fe6
mov dword [0x40e03c], edi
push 0x41ea30
push str.init.bin
call fcn.00405fe3
mov esi, eax
add esp, 8
test esi, esi
je 0x405016
push esi
push 1
push 0x44
push 0x40e038
call fcn.00405cd7
push esi
call fcn.00405e85
add esp, 0x14
mov eax, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x558
ret 0x10