Function at 0x4039a0
Capabilities:
Enumerate pe sections
Get graphical window text
Link many functions at runtime
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x538
mov ecx, dword [0x4060dc]
mov eax, 0x9e5f09c9
imul ecx
add edx, ecx
mov ecx, dword [0x40601c]
sar edx, 0xd
mov eax, edx
push ebx
shr eax, 0x1f
add edx, eax
mov eax, 0x2fa0be83
mov dword [0x406094], edx
imul ecx
sar edx, 5
mov ecx, edx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push edi
shr ecx, 0x1f
add edx, ecx
mov dword [0x40601c], edx
mov edx, dword [0x40c678]
push edx
call esi
mov dword [0x40c734], eax
mov eax, dword [0x40c66c]
push eax
call esi
mov ecx, dword [0x40612c]
mov dword [0x40c738], eax
mov eax, 0xc907da5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
imul ecx
sar edx, 3
mov ecx, edx
mov eax, dword [0x40c734]
shr ecx, 0x1f
add edx, ecx
mov dword [0x40612c], edx
mov edx, dword [0x40c698]
push edx
push eax
call esi
mov ecx, dword [0x40c68c]
mov edx, dword [0x40c734]
push ecx
push edx
mov dword [0x40c6f0], eax
mov dword [0x4060fc], 0x7826
call esi
mov ebx, dword [sym.imp.USER32.dll_SetActiveWindow]
mov dword [0x40c710], eax
mov eax, dword [0x40654c]
push eax
call ebx
mov ecx, dword [0x40c684]
mov edx, dword [0x40c738]
push ecx
push edx
call esi
mov dword [0x40c714], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov eax, dword [0x40c67c]
push 0x40c62c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, dword [0x40c67c]
mov edx, dword [0x40c734]
push ecx
push edx
call esi
mov dword [0x40c718], eax
mov eax, dword [0x4064dc]
push eax
call ebx
mov ecx, dword [0x40c674]
mov edx, dword [0x40c734]
push ecx
push edx
call esi
mov dword [0x40c71c], eax
mov eax, dword [0x4064a8]
push 0x56b1
push 0x6a86
push 0x3894
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x40c668]
mov edx, dword [0x40c734]
push ecx
push edx
call esi
mov dword [0x40c720], eax
mov eax, dword [0x4065e0]
push eax
call ebx
mov ecx, dword [0x40c660]
mov edx, dword [0x40c734]
push ecx
push edx
call esi
mov dword [0x40c724], eax
mov eax, dword [0x4064c8]
push eax
call ebx
mov ecx, dword [0x40c658]
mov edx, dword [0x40c734]
push ecx
push edx
call esi
mov ecx, dword [0x406534]
mov edi, dword [sym.imp.USER32.dll_SetWindowPos]
push 0x15
push 0x19e4
mov dword [0x40c728], eax
mov eax, dword [0x4064a4]
push 0x20ba
push 0x3a11
push 0x558f
push eax
push ecx
call edi
mov edx, dword [0x40c65c]
mov eax, dword [0x40c734]
push edx
push eax
call esi
mov ecx, dword [0x40602c]
mov dword [0x40c6f4], eax
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 3
mov ecx, edx
mov eax, dword [0x40c734]
shr ecx, 0x1f
add edx, ecx
mov dword [0x40602c], edx
mov edx, dword [0x40c654]
push edx
push eax
call esi
mov ecx, dword [0x4064c0]
mov dword [0x40c6f8], eax
push ecx
call ebx
mov edx, dword [0x40c64c]
mov eax, dword [0x40c734]
push edx
push eax
call esi
mov ecx, dword [0x40c640]
mov edx, dword [0x40c734]
push ecx
push edx
mov dword [0x40c6fc], eax
mov dword [0x4060bc], 0x2d7
call esi
mov dword [0x40c72c], eax
mov eax, dword [0x4065c8]
push eax
call ebx
mov eax, dword [0x40c6f0]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c710]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c714]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c718]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c71c]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c720]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c724]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c728]
test eax, eax
je 0x4043f7
mov eax, dword [0x40c6f4]
test eax, eax
je 0x4043f7
mov ecx, dword [0x40c6f8]
test ecx, ecx
je 0x4043f7
mov ecx, dword [0x40c6fc]
test ecx, ecx
je 0x4043f7
mov ecx, dword [0x40c72c]
test ecx, ecx
je 0x4043f7
call eax
lea ecx, [ebp - 0x26c]
push 0x104
push ecx
push 0
mov dword [0x40c730], eax
call dword [0x40c72c]
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
mov edx, dword [0x406508]
mov eax, dword [0x4064cc]
push 0xba
push 0x564
push 0x4bb1
push 0x67c1
push 0x57f0
push edx
push eax
call edi
mov ecx, dword [0x40601c]
mov eax, 0x92492493
imul ecx
add edx, ecx
push 0x2fd1
sar edx, 6
mov ecx, edx
push 0x6a95
shr ecx, 0x1f
add edx, ecx
push 0x7ae1
mov dword [0x40601c], edx
mov edx, dword [0x4065a8]
push edx
mov dword [0x4060dc], 0x342
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x4064e8]
mov ecx, dword [0x4065a4]
push 0x30
push 0x19db
push 0x61da
push 0x4fd7
push 0x6a14
push eax
push ecx
call edi
mov edx, dword [0x40649c]
mov eax, dword [0x4064a0]
push 0x84
push 0x6f02
push 0x5234
push 0x35c2
push 0x1ded
push edx
push eax
call edi
call esi
mov ecx, dword [0x40612c]
mov edx, dword [0x4064c8]
add ecx, 0xffffe7ba
push edx
mov dword [0x406168], ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [0x406eb8]
mov ecx, dword [str.1rVQZ]
mov dword [0x4060d8], 0x9cc
lea esi, [eax + 1]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
push esi
sar edx, 4
mov ecx, edx
push 0
shr ecx, 0x1f
add edx, ecx
mov dword [str.1rVQZ], edx
mov edx, dword [0x40c730]
push edx
call dword [0x40c6f8]
mov dword [ebp - 4], eax
test eax, eax
je 0x403f9f
mov eax, dword [0x40660c]
mov ecx, dword [0x406500]
push 0x6b
push 0x73b0
push 0x258b
push 0x3e0d
push 0x6b75
dec esi
push eax
push ecx
mov dword [ebp - 0xc], esi
call edi
mov edi, dword [ebp - 4]
mov ecx, esi
mov edx, ecx
mov esi, 0x406ebc
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x406008]
mov ecx, 0x39d0
cdq
idiv ecx
mov dword [0x406158], edx
mov edx, dword [0x4065e8]
push edx
call ebx
mov eax, dword [ebp - 4]
mov edx, dword [0x40656c]
push edx
movsx ecx, byte [eax]
mov dword [ebp - 8], ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov esi, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [0x406074]
mov edi, esi
sub edi, edx
mov ecx, 0x528c
cdq
idiv ecx
mov ecx, dword [0x406118]
mov eax, 0x38e38e39
dec edi
mov dword [0x406198], edx
imul ecx
sar edx, 2
mov eax, edx
mov ecx, dword [ebp - 8]
shr eax, 0x1f
add edx, eax
push ecx
mov dword [0x406118], edx
mov edx, dword [ebp - 4]
lea ecx, [ebp - 0x168]
lea eax, [edx + edi + 1]
push eax
push ecx
call fcn.00403530
mov edx, dword [0x4064c4]
add esp, 0xc
push 0x41ae
push 0x1be7
push 0x5e27
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 4]
push edi
inc eax
lea ecx, [ebp - 0x168]
push eax
push ecx
mov dword [ebp - 0xc], eax
call fcn.00403680
mov ecx, dword [0x406104]
mov eax, 0x2aaaaaab
imul ecx
add esp, 0xc
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [0x406104], edx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [0x406570]
push 0x5eb1
push 0x39b6
push 0x2f74
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
lea eax, [esi + esi*2]
mov ecx, dword [0x40c730]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, 0x51eb851f
lea esi, [esi + edx*4]
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push 0
push ecx
call dword [0x40c6f8]
mov esi, eax
test esi, esi
mov dword [ebp - 0x20], esi
je 0x403f9f
mov edx, dword [ebp - 0xc]
push 0
push edi
push esi
push edx
call fcn.00403840
add esp, 0x10
mov edi, eax
mov eax, dword [0x406544]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [0x406044]
mov eax, 0x7a44c6b
imul ecx
sar edx, 1
mov ecx, edx
inc edi
shr ecx, 0x1f
add edx, ecx
push edi
mov dword [0x406044], edx
mov edx, dword [0x40c730]
push 0
push edx
call dword [0x40c6f8]
test eax, eax
mov dword [ebp - 8], eax
jne 0x403fcc
mov ecx, dword [0x4061e4]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
mov ecx, dword [0x4064dc]
lea eax, [eax + eax*2]
shl eax, 5
mov dword [0x40608c], eax
jmp 0x4043b0
mov edx, dword [0x4064d8]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
lea ecx, [edi - 1]
mov edi, dword [ebp - 8]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x406494]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
push ecx
call edi
mov edx, dword [ebp - 0x20]
mov eax, dword [0x40c730]
push edx
push 0
push eax
call dword [0x40c6fc]
mov ecx, dword [0x4061a4]
mov eax, 0xd20d20d3
imul ecx
add edx, ecx
mov eax, dword [0x40c730]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [0x4061a4], edx
mov edx, dword [ebp - 4]
push edx
push 0
push eax
call dword [0x40c6fc]
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
mov ecx, dword [0x406568]
push ecx
call ebx
mov ecx, dword [0x406068]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [0x406068], edx
call esi
mov ecx, dword [0x4065c4]
push ecx
call edi
mov ecx, dword [0x4061a4]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
push 0x58f9
shr eax, 0x1f
add edx, eax
mov eax, dword [0x4060e8]
mov dword [0x4061a4], edx
lea ecx, [eax + eax*4]
shl ecx, 5
add ecx, eax
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*2]
mov ecx, dword [0x40613c]
lea eax, [eax + edx*2]
shl eax, 1
mov dword [0x406188], eax
mov eax, 0xd3993273
imul ecx
add edx, ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [0x406030], edx
mov edx, dword [0x4064e4]
push 0x3a63
push 0x1d4e
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x4061e0], 0x4a70
call esi
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0x64]
rep stosd dword es:[edi], eax
mov eax, dword [0x40649c]
mov dword [ebp - 0x64], 0x44
push eax
call ebx
mov ecx, dword [0x406500]
mov dword [ebp - 0x538], 0x10007
push ecx
call ebx
mov ecx, dword [0x4061dc]
mov eax, 0x20b3dd41
imul ecx
mov edi, dword [ebp - 8]
sar edx, 0xb
mov eax, edx
mov dword [0x40c6e4], edi
shr eax, 0x1f
add edx, eax
mov dword [0x406054], edx
cmp word [edi], 0x5a4d
jne 0x4043b3
mov ecx, dword [edi + 0x3c]
mov edx, dword [0x406594]
mov eax, dword [0x40660c]
push 0x87
push 0x6d39
push 0x10eb
push 0x59ef
push 0x56b0
add ecx, edi
push edx
push eax
mov dword [0x40c6e8], ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [0x40c6e8]
cmp dword [ecx], 0x4550
jne 0x4043b3
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x64]
push edx
push eax
push 0
push 0
push 4
push 0
push 0
push 0
call dword [0x40c6f0]
lea ecx, [ebp - 0x26c]
push eax
push ecx
call dword [0x40c710]
mov edx, dword [0x40661c]
mov eax, dword [0x4065b0]
push 0x24
push 0x2142
push 0x7bcf
push 0x25f1
push 0x677e
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [0x40c6e8]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x34]
push edx
push eax
call dword [0x40c714]
mov ecx, dword [0x4065d0]
push 0x2647
push 0x392f
push 0xf82
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x40c6e8]
mov ecx, dword [ebp - 0x1c]
push 0x40
push 0x3000
mov edx, dword [eax + 0x50]
mov eax, dword [eax + 0x34]
push edx
push eax
push ecx
call dword [0x40c718]
mov eax, dword [0x40c6e8]
mov ecx, dword [ebp - 0x1c]
mov dword [0x4060b0], 0x7c9
push 0
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x34]
push edx
push edi
push eax
push ecx
call dword [0x40c71c]
mov edx, dword [0x406640]
mov eax, dword [0x4064a0]
push 0xdb
push 0x5e7c
push 0x711d
push 0x1428
push 0x1bc3
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [0x40c6e8]
xor eax, eax
mov dword [ebp - 8], eax
cmp word [ecx + 6], ax
jbe 0x404344
mov dword [ebp - 4], eax
mov edx, dword [0x40c6e4]
mov ecx, dword [ebp - 4]
push 0x18
push 0x700a
mov eax, dword [edx + 0x3c]
mov edx, dword [0x406654]
add eax, ecx
push 0x3de
push 0x66d
push 0x191c
lea ecx, [eax + edi + 0xf8]
mov eax, dword [0x406658]
push edx
push eax
mov dword [0x40c6ec], ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x40c6ec]
push 0
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [0x40c6e8]
add edx, edi
push edx
mov edx, dword [ecx + 0x34]
add eax, edx
mov edx, dword [ebp - 0x1c]
push eax
push edx
call dword [0x40c71c]
mov eax, dword [0x406520]
push eax
call ebx
mov ecx, dword [ebp - 4]
mov edx, dword [0x40c6e8]
mov eax, dword [ebp - 8]
add ecx, 0x28
mov dword [ebp - 4], ecx
xor ecx, ecx
mov cx, word [edx + 6]
inc eax
cmp eax, ecx
mov dword [ebp - 8], eax
jl 0x4042aa
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x538]
push eax
push ecx
call dword [0x40c720]
call esi
mov eax, dword [0x40c6e8]
push 0x2821
push 0x4a2d
push 0x6a0a
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x28]
mov eax, dword [0x4064f8]
add edx, ecx
push eax
mov dword [ebp - 0x488], edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x538]
push ecx
push edx
call dword [0x40c724]
mov eax, dword [ebp - 0x18]
mov dword [0x406148], 0x57de
push eax
call dword [0x40c728]
mov ecx, dword [0x4065d0]
push ecx
call ebx
mov ecx, dword [0x40613c]
mov eax, 0xd4d810d7
imul ecx
add edx, ecx
mov ecx, dword [0x40663c]
sar edx, 0xe
mov eax, edx
push 0x4607
shr eax, 0x1f
push 0x5321
add edx, eax
push 0x5bf3
push ecx
mov dword [0x406054], edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
int3