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

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebp, dword [esp + 0x64]
push esi
push edi
push 0
push 0
push 0x1200
mov ebx, ecx
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
lea edi, [esi*4 + 4]
push edi
call fcn.004c58a5
push edi
mov dword [esp + 0x28], eax
call fcn.004c58a5
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], edi
push eax
push esi
push 0x1211
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x451ba0
mov ecx, dword [0x4d9540]
xor eax, eax
test esi, esi
mov dword [esp + 0x6c], ecx
jle 0x451abd
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov eax, dword [edi]
lea edx, [esp + 0x38]
push edx
push eax
push 0x120b
push ebp
mov dword [esp + 0x4c], 0x6e
mov dword [esp + 0x48], 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [edi]
mov edx, dword [ebx]
mov esi, dword [esp + 0x3c]
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, ebx
call dword [edx + 0x2c]
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d9540]
push esi
push eax
lea ecx, [esp + 0x18]
push str._s_d
push ecx
mov dword [esp + 0x20], edx
call fcn.00401a70
mov edx, dword [0x4d9540]
mov eax, 0x4d9610
add esp, 0x10
mov dword [esp + 0x14], edx
test eax, eax
je 0x4519c4
push 0x4d9610
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4d9610
push eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x24]
call fcn.004017b0
lea edx, [esp + 0x14]
lea ecx, [esp + 0x18]
push edx
call fcn.00401200
lea ecx, [esp + 0x14]
call fcn.004014c0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x6c]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.00401850
mov eax, dword [esp + 0x18]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x451a38
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x451a3e
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
jmp 0x451a3e
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x28]
mov ecx, dword [edi]
mov dword [eax], ecx
mov ecx, dword [0x4d9544]
add eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x451a78
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x451a78
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004c5432
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x451aa3
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x451aa3
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
mov eax, dword [esp + 0x2c]
add edi, 4
dec eax
mov dword [esp + 0x2c], eax
jne 0x45194d
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov dword [edi + eax*4], 0xffffffff
mov eax, dword [esp + 0x20]
push eax
call fcn.004c5432
push edi
call fcn.004c5432
mov ecx, dword [0x4d9540]
mov edx, dword [esp + 0x74]
add esp, 8
mov dword [esp + 0x24], ecx
mov eax, dword [edx - 8]
lea ecx, [esp + 0x24]
push eax
push 0x4da88c
push ecx
call fcn.00401a70
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [eax - 0xc]
lea ecx, [eax - 0xc]
test edx, edx
jl 0x451b18
push ecx
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x451b36
mov edx, dword [0x4d9540]
mov esi, eax
test eax, eax
mov dword [edi], edx
je 0x451b2d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
mov ecx, edi
call fcn.00401630
mov eax, dword [esp + 0x24]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x451b65
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x451b65
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
mov eax, dword [esp + 0x6c]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x451be8
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x451be8
mov edx, dword [esp + 0x6c]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov edi, dword [esp + 0x68]
mov eax, dword [0x4d9540]
mov ecx, 0x4e3a5c
test ecx, ecx
mov dword [edi], eax
je 0x451be8
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x451be8
push esi
mov ecx, edi
call fcn.004012f0
test eax, eax
je 0x451be8
mov edx, dword [edi]
inc esi
push esi
push 0x4e3a5c
push edx
call fcn.004011c0
add esp, 0xc
mov ecx, edi
push 0xffffffffffffffff
call fcn.00401970
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8