Function at 0x4185a0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x56b677
mov eax, dword fs:[0]
push eax
sub esp, 0xd98
mov eax, dword [0x5c96a4]
xor eax, esp
mov dword [esp + 0xd94], eax
push ebx
push ebp
push esi
mov eax, dword [0x5c96a4]
xor eax, esp
push eax
lea eax, [esp + 0xda8]
mov dword fs:[0], eax
mov eax, dword [edi + 0x1130]
xor ebp, ebp
push ebp
push 9
push 0x110a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
cmp ebx, ebp
jne 0x4185fc
mov ebx, 0xffff0000
mov esi, 1
push esi
push ebp
push edi
push str.mly_.mly_.mly
push 2
push 0x59b86c
push str..mly
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x3c], ebp
call fcn.0044dbf6
lea ecx, [esp + 0x2c]
mov dword [esp + 0xdb0], ebp
call fcn.0044e457
cmp eax, esi
jne 0x4186f9
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x30]
call fcn.0044e836
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0xdb4], 1
call fcn.0044e586
mov byte [esp + 0xdb0], 2
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], esi
jle 0x418681
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x18]
call fcn.00403ad0
mov eax, dword [esp + 0x14]
push 0
push eax
push 0x4126a0
lea ebp, [edi + 0x1110]
push ebx
mov ecx, ebp
call fcn.0043fd00
test eax, eax
je 0x418714
push edi
mov ecx, 0x5e1974
call fcn.00421920
add esp, 4
mov byte [esp + 0xdb0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4186d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xdb0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4186f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xdb0], 0xffffffff
call fcn.0044da63
xor eax, eax
jmp 0x418a49
call fcn.00441f5f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41872e
push 0x80004005
call fcn.00403c50
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0xdb0], 3
mov eax, dword [esp + 0x18]
cmp dword [eax - 4], esi
jle 0x418760
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00403ad0
mov eax, dword [esp + 0x18]
push 0
push 0x80
push 3
push 0
push esi
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [esp + 0x24], esi
cmp esi, 0xffffffff
jne 0x4187f8
mov esi, dword [0x5e1850]
cmp dword [esi - 4], 1
jle 0x4187a3
mov edx, dword [esi - 0xc]
push edx
mov ecx, 0x5e1850
call fcn.00403ad0
mov esi, dword [0x5e1850]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [esp + 0x18]
push str._s___0x_x
push eax
call fcn.00403920
push edi
lea ecx, [esp + 0x24]
call fcn.00421920
mov byte [esp + 0xdc4], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4186a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4186a9
push 0
lea ecx, [esp + 0x24]
push ecx
push 0x526
lea edx, [esp + 0x888]
push edx
push esi
mov dword [esp + 0x34], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41884a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x14]
push str.Read_macro_file_failed._error0x_x
push eax
call fcn.00403920
add esp, 0xc
push edi
lea ecx, [esp + 0x14]
call fcn.00421920
add esp, 4
jmp 0x4189b2
mov eax, dword [esp + 0x20]
cmp eax, 0x526
je 0x41887c
push 0x526
push eax
lea ecx, [esp + 0x18]
push str.macro_file_size_wrong___d___d
push ecx
call fcn.00403920
push edi
lea ecx, [esp + 0x24]
call fcn.00421920
add esp, 0x14
jmp 0x4189b2
lea eax, [esp + 0x354]
lea ecx, [esp + 0x87c]
call fcn.00419a00
cmp dword [esp + 0x354], 0xfa3388a0
je 0x4188af
push edi
mov ecx, str.This_is_not_a_valid_macro_file.
call fcn.004219e0
add esp, 4
jmp 0x4189b2
lea ecx, [esp + 0x354]
call fcn.00418e60
test eax, eax
je 0x4188d2
push edi
mov ecx, str.This_macro_contains_unsupported_key.
call fcn.004219e0
add esp, 4
jmp 0x4189b2
lea ecx, [esp + 0x14]
call fcn.00403490
push eax
push 0x5996c0
push 0x27
lea edx, [esp + 0x374]
push 0x28
push edx
call fcn.005403d0
add esp, 0x14
call fcn.0043b250
mov dword [esp + 0x358], eax
lea eax, [esp + 0x354]
call fcn.0043b190
mov eax, dword [esp + 0x358]
push 0
push 5
push eax
lea ecx, [esp + 0x374]
push ecx
push 0
push 0
push 1
push ebp
call fcn.0043fa40
lea esi, [edi + 0x1254]
mov ebx, eax
call fcn.0043fc30
push 1
lea edx, [esp + 0x358]
push edx
mov esi, edi
call fcn.00414710
push 0xc0000000
mov eax, edi
mov dword [esp + 0x20], 1
call fcn.004140d0
push ebx
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call fcn.00450205
push ebp
mov ecx, eax
mov byte [esp + 0xdb4], 4
call fcn.00403490
push eax
mov edx, ebx
mov eax, ebp
call fcn.0043fe80
push eax
push ebx
call fcn.004192c0
add esp, 0x10
lea ecx, [esp + 0x28]
mov byte [esp + 0xdb0], 3
call fcn.0041a0e0
push 0
lea ecx, [edi + 0xe50]
call fcn.0044b8be
mov esi, dword [esp + 0x24]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0xdb0], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4189e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xdb0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418a09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xdb0], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418a31
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xdb0], 0xffffffff
call fcn.0044da63
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xda8]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd94]
xor ecx, esp
call fcn.0053fb0e
add esp, 0xda4
ret