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

Disassembly:
mov eax, dword [0x40b3a4]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call esi
mov ecx, dword [0x405014]
mov edx, dword [0x40b39c]
add ecx, 0xffffa05a
push edx
mov dword [0x40b454], eax
mov dword [0x405110], ecx
call esi
mov dword [0x40b458], eax
mov eax, dword [0x4053f0]
push 0x5ff7
push 0x6b56
push 0x5bb3
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x40b454]
mov eax, dword [0x40b458]
cmp ecx, eax
pop esi
je 0x4035f4
jmp 0x403640
ret
sub esp, 0x534
mov eax, dword [0x40546c]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push esi
push edi
push 0x47f5
push 0x47e1
push 0x74c2
push eax
call ebp
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [0x40b394]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push ecx
call esi
mov edx, dword [0x4053c0]
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0x4314
push 5
push edx
mov dword [0x40b454], eax
call ebx
mov eax, dword [0x40b388]
push eax
call esi
mov ecx, dword [0x405058]
mov dword [0x40b458], eax
mov eax, 0x8b70344b
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
imul ecx
add edx, ecx
mov eax, dword [0x40b454]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [0x405058], edx
mov edx, dword [0x40b3b4]
push edx
push eax
call esi
mov ecx, dword [0x4050f4]
mov dword [0x40b410], eax
mov eax, 0x12ea9bb1
imul ecx
sar edx, 0xa
mov ecx, edx
mov eax, dword [0x40b454]
shr ecx, 0x1f
add edx, ecx
mov dword [0x405120], edx
mov edx, dword [0x40b3a8]
push edx
push eax
call esi
mov ecx, dword [0x405054]
mov edx, dword [0x40b3a0]
mov dword [0x40b430], eax
mov eax, dword [0x40b458]
add ecx, 0xffff8699
push edx
push eax
mov dword [0x40505c], ecx
call esi
mov ecx, dword [0x405444]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x87
push ecx
mov dword [0x40b434], eax
call edi
mov edx, dword [0x40b398]
mov eax, dword [0x40b454]
push edx
push eax
call esi
push 0xd60
mov dword [0x40b438], eax
push 0x65e6
mov ecx, dword [0x4053c4]
push 0x426
push ecx
call ebp
mov edx, dword [0x40b390]
mov eax, dword [0x40b454]
push edx
push eax
call esi
mov dword [0x40b43c], eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [0x40b384]
mov edx, dword [0x40b454]
push ecx
push edx
call esi
mov dword [0x40b440], eax
mov eax, dword [0x4053ac]
push 0
push 0x72d6
push 0x76
push eax
call ebx
mov ecx, dword [0x40b37c]
mov edx, dword [0x40b454]
push ecx
push edx
call esi
mov dword [0x40b444], eax
mov eax, dword [0x40546c]
push 0x41
push eax
call edi
mov ecx, dword [0x40b374]
mov edx, dword [0x40b454]
push ecx
push edx
call esi
mov dword [0x40b448], eax
mov eax, dword [0x40511c]
mov ecx, dword [0x40b378]
mov edx, dword [0x40b454]
lea eax, [eax + eax*4]
push ecx
push edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
mov dword [str._az_], eax
call esi
mov dword [0x40b414], eax
mov eax, dword [0x405468]
push 0x7c0b
push 0x67a7
push 0x31c0
push eax
call ebp
mov ecx, dword [0x40b370]
mov edx, dword [0x40b454]
push ecx
push edx
call esi
mov ecx, dword [0x40509c]
mov dword [0x40b418], eax
mov eax, 0x7a44c6b
imul ecx
sar edx, 2
mov ecx, dword [0x40b368]
mov eax, edx
shr eax, 0x1f
add edx, eax
push ecx
mov dword [0x40509c], edx
mov edx, dword [0x40b454]
push edx
call esi
mov dword [0x40b41c], eax
mov eax, dword [0x405414]
push 0
push 0x713d
push 0x1d
push eax
call ebx
mov ecx, dword [0x40b35c]
mov edx, dword [0x40b454]
push ecx
push edx
call esi
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov dword [0x40b44c], eax
mov eax, dword [0x405448]
push 0
push 0xff
push eax
call esi
mov eax, dword [0x40b410]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b430]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b434]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b438]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b43c]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b440]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b444]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b448]
test eax, eax
je 0x403f7d
mov eax, dword [0x40b414]
test eax, eax
je 0x403f7d
mov ecx, dword [0x40b418]
test ecx, ecx
je 0x403f7d
mov ecx, dword [0x40b41c]
test ecx, ecx
je 0x403f7d
mov ecx, dword [0x40b44c]
test ecx, ecx
je 0x403f7d
call eax
lea ecx, [esp + 0x70]
push 0x104
push ecx
push 0
mov dword [0x40b450], eax
mov dword [0x405010], 0x45d0
call dword [0x40b44c]
mov edx, dword [0x4053d0]
push 0x47
push edx
call edi
mov eax, dword [0x4053e0]
push 0
push 0x2fde
push 0x50
push eax
mov dword [0x405108], 0x1bae
call ebx
mov ecx, dword [0x405150]
mov edx, dword [0x405418]
add ecx, 0x7937
push 0xe3
push edx
mov dword [0x405134], ecx
mov dword [0x4050cc], 0x384d
call edi
mov eax, dword [0x405448]
push 0x204e
push 0x70e4
push 0x1447
push eax
call ebp
mov ecx, dword [0x405480]
push 0
push pe_nt_image_headers32
push ecx
mov dword [0x405118], 0x474b
call esi
mov edx, dword [0x4054a8]
push 0x289
push 0x2f5e
push 0x195a
push edx
call ebp
mov eax, dword [0x405d38]
mov ecx, dword [0x405490]
push 0x2c5d
push 0x19a9
push 0x2a6b
push ecx
lea ebx, [eax + 1]
call ebp
mov edx, dword [0x40b450]
push ebx
push 0
push edx
call dword [0x40b418]
test eax, eax
mov dword [esp + 0x10], eax
je 0x403bd7
dec ebx
mov edi, eax
mov ecx, ebx
mov esi, 0x405d3c
mov eax, ecx
push 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x45
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x405478]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov edx, dword [esp + 0x10]
movsx edi, byte [edx]
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov eax, dword [0x405458]
mov esi, ebx
push 0
push 0x6540
sub esi, edi
push 0x83
push eax
dec esi
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [0x4053f4]
push 0
push 0x2347
push 0x53
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
push edi
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x178]
lea edx, [edi + esi + 1]
push edx
push eax
call fcn.004031d0
mov ecx, dword [0x4054e8]
add esp, 0xc
push 0x69fd
push 0x436d
push 0x7ca8
push ecx
call ebp
lea eax, [edi + 1]
push esi
lea edx, [esp + 0x178]
push eax
push edx
mov dword [esp + 0x34], eax
call fcn.004032d0
mov eax, dword [0x405434]
add esp, 0xc
mov dword [0x405078], 0x1376
push 0
push 0xd
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov ecx, dword [0x4050ec]
mov eax, 0x81020409
imul ecx
add edx, ecx
mov eax, 0x66666667
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [0x405160]
mov dword [0x4050ec], edx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [ebx + ebx*4]
mov dword [0x405160], edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*2]
mov eax, 0x51eb851f
lea ebx, [ebx + ecx*4]
mov ecx, dword [0x40b450]
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push 0
push ecx
call dword [0x40b418]
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
je 0x403bd1
mov edx, dword [esp + 0x28]
push 0
push esi
push edi
push edx
call fcn.004034d0
add esp, 0x10
mov esi, eax
mov eax, dword [0x405468]
push 0x1e
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x4050b4]
mov ecx, 0x724f
cdq
idiv ecx
inc esi
push esi
push 0
mov dword [0x4050b0], edx
mov edx, dword [0x40b450]
push edx
call dword [0x40b418]
mov ebx, eax
test ebx, ebx
jne 0x403c09
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x405068]
mov eax, 0xc47dc805
imul ecx
add edx, ecx
mov ecx, dword [0x4054bc]
sar edx, 0xd
mov eax, edx
push 0xec
shr eax, 0x1f
add edx, eax
push ecx
mov dword [0x405010], edx
call edi
jmp 0x403f5c
lea ecx, [esi - 1]
mov esi, edi
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x40b450]
push 0
push ecx
call dword [0x40b41c]
mov edx, dword [0x40545c]
push 0x67c2
push 0x1a7d
push 0x2ba3
push edx
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [0x40b450]
push eax
push 0
push ecx
call dword [0x40b41c]
mov edx, dword [0x405460]
push 0
push 0x64b0
push 0x55
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x405054], 0x1c18
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov eax, dword [0x4054cc]
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x2e
push eax
call esi
mov ecx, dword [0x405098]
mov eax, 0x82082083
imul ecx
add edx, ecx
push 0
sar edx, 7
mov ecx, edx
push 0x6c
shr ecx, 0x1f
add edx, ecx
mov dword [0x405098], edx
mov edx, dword [0x4053d4]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov ecx, dword [0x405078]
mov eax, 0x89fac753
imul ecx
add edx, ecx
mov ecx, dword [0x405520]
sar edx, 0xe
mov eax, edx
push 0xf1
shr eax, 0x1f
add edx, eax
push ecx
mov dword [0x405044], edx
call esi
mov ecx, dword [0x40516c]
mov eax, 0x8c08c08d
imul ecx
add edx, ecx
mov ecx, 0x11
sar edx, 7
mov eax, edx
lea edi, [esp + 0x2c]
shr eax, 0x1f
add edx, eax
xor eax, eax
mov dword [0x40516c], edx
push 0xbe
rep stosd dword es:[edi], eax
mov ecx, dword [0x405438]
push ecx
call esi
mov dword [esp + 0x2c], 0x44
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ecx, dword [str.:__]
mov eax, 0x70e2354d
imul ecx
mov ecx, dword [0x40510c]
mov dword [esp + 0x278], 0x10007
sar edx, 0xc
mov eax, edx
add ecx, 0x71ad
shr eax, 0x1f
add edx, eax
mov dword [0x40b404], ebx
mov dword [0x40518c], edx
mov dword [0x4051a0], ecx
cmp word [ebx], 0x5a4d
jne 0x403f56
mov eax, dword [ebx + 0x3c]
add eax, ebx
mov dword [0x40b408], eax
cmp dword [eax], 0x4550
jne 0x403f56
lea edx, [esp + 0x14]
lea eax, [esp + 0x2c]
push edx
push eax
push 0
push 0
push 4
push 0
push 0
push 0
call dword [0x40b410]
lea ecx, [esp + 0x90]
push eax
push ecx
call dword [0x40b430]
mov eax, dword [0x4050ec]
mov ecx, 0x68c1
cdq
idiv ecx
mov ecx, dword [esp + 0x14]
mov dword [0x405064], edx
mov edx, dword [0x40b408]
mov eax, dword [edx + 0x34]
push eax
push ecx
call dword [0x40b434]
mov edx, dword [0x4053d4]
mov edi, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0x7242
push 0x59
push edx
call edi
mov eax, dword [0x40b408]
push 0x40
push 0x3000
mov ecx, dword [eax + 0x50]
mov edx, dword [eax + 0x34]
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call dword [0x40b438]
mov ecx, dword [0x405064]
mov eax, dword [0x40b408]
imul ecx, ecx, 0x69b6
mov dword [0x405028], ecx
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x34]
mov ecx, dword [esp + 0x14]
push 0
push edx
push ebx
push eax
push ecx
call dword [0x40b43c]
mov edx, dword [0x40b408]
xor esi, esi
mov dword [0x4050bc], 0x6cde
cmp word [edx + 6], si
jbe 0x403ee4
xor edi, edi
mov eax, dword [0x40b404]
mov ecx, dword [eax + 0x3c]
add ecx, edi
lea edx, [ecx + ebx + 0xf8]
mov dword [0x40b40c], edx
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov eax, dword [0x40b40c]
push 0
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [0x40b408]
add edx, ebx
push edx
mov edx, dword [ecx + 0x34]
add eax, edx
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [0x40b43c]
mov eax, dword [0x405444]
push 0x7c7f
push 0x189c
push 0x6600
push eax
call ebp
mov edx, dword [0x40b408]
xor ecx, ecx
inc esi
add edi, 0x28
mov cx, word [edx + 6]
cmp esi, ecx
jl 0x403e6b
mov edi, dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x278]
push eax
push ecx
call dword [0x40b440]
mov edx, dword [0x4053f4]
push 0
push 0x5abd
push 0x48
push edx
call edi
mov eax, dword [0x40b408]
mov ecx, dword [eax + 0x34]
mov ebx, dword [eax + 0x28]
add ecx, ebx
mov dword [esp + 0x328], ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x278]
push edx
push eax
call dword [0x40b444]
mov ecx, dword [0x405438]
push 0
push 0x1d74
push 0xf3
push ecx
call edi
mov edx, dword [esp + 0x18]
push edx
call dword [0x40b448]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x4053fc]
push 0x34
push eax
mov dword [0x40500c], 0x53f5
call edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x534
ret
mov ecx, dword [0x405460]
push 0
push 0x44
push ecx
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x534
ret