Function at 0x404f10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7e0
mov eax, dword [0x536ed4]
xor eax, esp
mov dword [esp + 0x7dc], eax
mov eax, dword [0x502e58]
push ebx
push ebp
push edi
xor ebx, ebx
push 0x7cc
mov edi, ecx
mov ecx, dword [0x502e5c]
lea edx, [esp + 0x1e]
push ebx
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov word [esp + 0x24], bx
call fcn.004d1c40
add esp, 0xc
push edi
mov dword [esp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebp, 1
add eax, ebp
push eax
push edi
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.004cfc5f
add esp, 0xc
cmp eax, ebx
je 0x40543d
lea ebx, [ebp + 1]
lea edi, [eax + 2]
push 0x502e60
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x404fb4
mov dword [esi + 0x44], ebp
jmp 0x40541f
push 0x5014e0
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x404fce
mov dword [esi + 0x48], ebp
jmp 0x40541f
push 0x502e64
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x404fe8
mov dword [esi + 4], ebp
jmp 0x40541f
push 0x502e6c
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405002
mov dword [esi + 0xc], ebp
jmp 0x40541f
push 0x502e78
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x40501c
mov dword [esi + 8], ebp
jmp 0x40541f
push str.DAE0
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405036
mov dword [esi + 0x10], ebp
jmp 0x40541f
push str.MAXX30
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405050
mov dword [esi + 0x4c], ebp
jmp 0x40541f
push str.BEATSON
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x40506a
or dword [esi + 0x50], ebp
jmp 0x40541f
push str.BEATSOFF
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405084
or dword [esi + 0x50], ebx
jmp 0x40541f
push str.BEATSTOGGLE
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x40509f
or dword [esi + 0x50], 4
jmp 0x40541f
push 0x502ed8
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4050b9
mov dword [esi + 0x2c], eax
jmp 0x405413
push str.iPhone
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
je 0x405409
push str.RestoreDeviceType
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
je 0x405409
push str.OMTP
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405103
mov dword [esi + 0x2c], 0xa
jmp 0x405416
push str.CTIA
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405121
mov dword [esi + 0x2c], 0xb
jmp 0x405413
push str.iPhoneMic
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405146
mov eax, 0xa
mov dword [esi + 0x58], ebp
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
jmp 0x405419
push 0x502f50
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x40516a
mov dword [esi + 0x58], ebp
mov dword [esi + 0x28], 0xa
mov dword [esi + 0x2c], eax
jmp 0x405419
push str.RETASK
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
je 0x40536d
push str.RETASK_S
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
je 0x40536d
push str.RETASKPOPUP
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4051dd
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esi + 0x58], ebp
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x6c], ebp
call fcn.004cfc5f
add esp, 0xc
test eax, eax
je 0x40541f
push eax
call fcn.004cf7ad
add esp, 4
mov dword [esi + 0x70], eax
jmp 0x40541f
push str.ASUS_DEPOP
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405225
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0
mov dword [esi + 0x5c], ebp
call fcn.004cfc5f
add esp, 0xc
test eax, eax
je 0x40541f
push eax
call fcn.004cf7ad
add esp, 4
neg eax
sbb eax, eax
add eax, ebx
mov dword [esi + 0x78], eax
jmp 0x40541f
push str.ACTION
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4052be
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x14]
push eax
push 0
mov dword [esi + 0x5c], ebp
call fcn.004cfc5f
add esp, 0xc
test eax, eax
je 0x40541f
push 0x10
push 0
push eax
call fcn.004cf9a9
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
mov dword [esi + 0x7c], eax
call fcn.004cfc5f
add esp, 0x18
test eax, eax
je 0x40528e
push eax
call fcn.004cf7ad
add esp, 4
mov dword [esi + 0x80], eax
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0
call fcn.004cfc5f
add esp, 0xc
test eax, eax
je 0x40541f
push eax
call fcn.004cf7ad
add esp, 4
mov dword [esi + 0x84], eax
jmp 0x40541f
push str.DAEMON_MODE
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4052db
or dword [esi + 0x88], ebp
jmp 0x40541f
push str.LAUNCH_BY_STARTMENU
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4052f8
or dword [esi + 0x88], ebx
jmp 0x40541f
push str.DEBUG_FILE
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405316
or dword [esi + 0x88], 0x20
jmp 0x40541f
push str.DEBUG_MSG
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x405334
or dword [esi + 0x88], 0x40
jmp 0x40541f
push str.WOV_TRAIN_UI
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x40541f
or dword [esi + 0x88], 0x80
mov dword [esi + 0x8c], 0x11
mov dword [esi + 0x90], 0x12b
jmp 0x40541f
push str.RETASK
push edi
call fcn.004cfb69
neg eax
sbb eax, eax
add eax, 1
lea edx, [esp + 0x14]
mov dword [esi + 0x58], eax
push edx
lea eax, [esp + 0x1c]
push eax
push 0
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x30], ebp
call fcn.004cfc5f
add esp, 0x14
test eax, eax
je 0x40541f
push eax
call fcn.004cf7ad
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push 0
mov dword [esi + 0x34], eax
call fcn.004cfc5f
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40541f
push str.HEADSET
push edi
call fcn.004cfb69
add esp, 8
test eax, eax
jne 0x4053da
mov dword [esi + 0x40], ebp
jmp 0x40541f
push edi
call fcn.004cf7ad
mov dword [esi + 0x38], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
push 0
call fcn.004cfc5f
add esp, 0x10
test eax, eax
je 0x40541f
push eax
call fcn.004cf7ad
add esp, 4
mov dword [esi + 0x3c], eax
jmp 0x40541f
mov dword [esi + 0x68], ebp
mov dword [esi + 0x2c], 0xa
mov dword [esi + 0x58], ebp
mov dword [esi + 0x28], ebx
mov dword [esi + 0x24], ebp
mov dword [esi + 0x5c], ebp
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x14]
push eax
push 0
call fcn.004cfc5f
add esp, 0xc
test eax, eax
jne 0x404f97
xor ebx, ebx
mov eax, dword [esi + 0x88]
test al, 0x20
je 0x40544f
mov dword [0x53e3d4], ebp
jmp 0x405459
test al, 0x40
je 0x40546a
mov dword [0x53e3d4], ebx
push 0x54ad20
mov dword [0x54ad60], ebp
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ecx, dword [esp + 0x7e8]
pop edi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004cf0b8
add esp, 0x7e0
ret