Function at 0x401360
Capabilities:
Access peb ldr_data
Get process filename

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a0
push ebx
push ebp
mov ebp, dword [0x40437c]
push esi
push edi
mov eax, dword [esp + 0x8a]
xor edi, dword [esp + 0x7d]
call dword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.00401690
sub esi, eax
mov dword [esp + 0x3a], eax
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0
call esi
add eax, dword [esp + 0x7e]
mov eax, dword [ebp + 0x3c]
movzx ecx, word [eax + ebp + 0x16]
mov edx, dword [eax + ebp + 0xc0]
add eax, ebp
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x38], ecx
mov ecx, 0xa
mov eax, str.auhdub__tbb
mov dword [esp + 0x54], edx
mov byte [esp + 0x34], 0
call fcn.004018f0
add esp, 4
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0xc5ff2f46
mov ebx, eax
call fcn.00401cd0
add esp, 4
add ecx, dword [esp + 0x83]
lea edx, [esp + 0x18]
push edx
push 0x40
push 0x20000
push ebp
call eax
push 0
call esi
or edi, edi
mov dword [esp + 0x1c], eax
and dword [esp + 0x1c], eax
push ebp
call fcn.00401970
add esp, 4
mov eax, ebp
mov ecx, 0x7fff
add dword [eax], 0x234d
add eax, 4
sub ecx, 1
jne 0x401423
xor dword [esp + 0x57], eax
push ecx
call esi
mov ebx, dword [ebp + 0x3c]
mov esi, dword [ebx + ebp + 0xa0]
mov ax, word [esp + 0x34]
mov ecx, dword [esp + 0x50]
add ebx, ebp
test esi, esi
mov dword [esp + 0x74], ebx
mov word [ebx + 0x16], ax
mov dword [ebx + 0xc0], ecx
je 0x4014d9
mov edx, dword [0x40437c]
add esi, edx
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov edx, dword [0x40437c]
sub edx, dword [ebx + 0x34]
mov eax, 0x35a
mov edi, 7
shr eax, 5
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x50]
sub edi, 1
jne 0x401480
cmp dword [esi], edi
je 0x4014d9
mov eax, dword [esi + 4]
sub eax, 8
shr eax, 1
test eax, eax
lea ecx, [esi + 8]
jle 0x4014d1
mov edi, eax
movzx eax, word [ecx]
mov ebp, eax
and ebp, 0xf000
cmp ebp, 0x3000
jne 0x4014c9
mov ebp, dword [0x40437c]
and eax, 0xfff
add eax, dword [esi]
add eax, ebp
add dword [eax], edx
add ecx, 2
sub edi, 1
jne 0x4014a5
add esi, dword [esi + 4]
cmp dword [esi], 0
jne 0x401494
cmp dword [ebx + 0x80], 0
je 0x4015ba
xor esi, dword [esp + 0x11b]
add ecx, dword [esp + 0x132]
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, dword [esp + 0x84]
and dword [esp + 0x7d], eax
mov edi, dword [ebx + 0x80]
add edi, dword [0x40437c]
cmp dword [edi + 0x10], 0
mov dword [esp + 0x34], edi
je 0x4015ba
mov eax, dword [edi + 0xc]
add eax, dword [0x40437c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x4015a5
add eax, dword [esp + 0xe7]
mov eax, edx
mov eax, dword [esp + 0xe9]
mov ebp, dword [edi]
test ebp, ebp
jne 0x40154e
mov ebp, dword [edi + 0x10]
mov eax, dword [0x40437c]
mov esi, dword [edi + 0x10]
add ebp, eax
add esi, eax
mov eax, dword [ebp]
test eax, eax
je 0x4015a5
jns 0x401571
movzx ecx, word [ebp]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x401596
mov edx, dword [0x40437c]
add eax, edx
sub dword [esp + 0xe7], eax
or edi, dword [esp + 0xe4]
add eax, 2
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [esp + 0x34]
add ebp, 4
mov dword [esi], eax
mov eax, dword [ebp]
add esi, 4
test eax, eax
jne 0x401561
add edi, 0x14
cmp dword [edi + 0x10], 0
mov dword [esp + 0x34], edi
jne 0x40151f
mov ebx, dword [esp + 0x74]
mov eax, dword [ebx + 0x28]
add eax, dword [0x40437c]
mov dword [esp + 0x14], 0
mov dword [0x404384], eax
push eax
mov eax, dword fs:[0x30]
mov dword [esp + 0x18], eax
pop eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc]
mov edi, dword [edx + 0xc]
mov eax, dword [0x40437c]
jmp 0x4015f0
mov edi, dword [edi]
cmp dword [edi + 0x18], eax
jne 0x4015f0
mov esi, dword [esp + 0x7b]
push 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, edx
mov eax, dword [0x404384]
mov dword [edi + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret