Function at 0x60596d
Capabilities:
Parse pe header

Disassembly:
lea ecx, [ebp - 0x6d8]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x70c], 0x52
mov dword [ebp - 0x708], 0x6a
mov edx, dword [ebp - 0x70c]
cmp edx, dword [ebp - 0x708]
jle 0x605563
and esp, 0xfffffff8
fldz
sub esp, 8
push ebx
fstp dword [ecx + 0x10]
push ebp
xor eax, eax
push esi
lea esi, [ecx + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x14], eax
mov byte [ecx + 0x18], al
inc ecx
sbb byte [edi - 0x75], dl
jle 0x605544
cmp dword [esi + 0xc], edi
jbe 0x60553e
call 0x64844f
mov ebx, dword [esi + 0xc]
mov ebp, dword [esi]
cmp ebx, dword [esi + 0x10]
jbe 0x60554d
call 0x64844f
mov eax, dword [esi]
push edi
push ebp
push ebx
push eax
lea ebx, [esp + 0x20]
call fcn.0060eda1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
mov dword [ebp - 0x414], 0x27
mov dword [ebp - 0x704], 0x8d
mov eax, dword [ebp - 0x414]
cmp eax, dword [ebp - 0x704]
jle 0x6055a6
push esi
mov esi, eax
jmp 0x60559e
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
dec dword [ebp + 0xc]
call 0x60555d
cmp dword [esi], 0xffffffff
pop ecx
je 0x6055a4
cmp dword [ebp + 0xc], 0
jg 0x60558a
pop esi
pop ebp
mov dword [ebp - 0x160], 0xe
mov dword [ebp - 0x700], 0xa4
mov ecx, dword [ebp - 0x160]
cmp ecx, dword [ebp - 0x700]
jle 0x60561e
push 0xffffffffffffffff
push 0x10065553
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x10085534]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
call fcn.00602035
push eax
call dword [0x1006f0ac]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
call fcn.005f0495
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
lea edx, [ebp - 0x6a8]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x558], 0x2f
mov dword [ebp - 0x8ac], 0xbb
mov eax, dword [ebp - 0x558]
cmp eax, dword [ebp - 0x8ac]
jle 0x6056aa
sub esp, 0xc
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call 0x64dc1a
mov ecx, eax
call 0x64661a
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x3c], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x60567f
xor al, al
jmp 0x6056a7
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x34]
call edx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x6056a5
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
call fcn.00612fea
mov al, 1
jmp 0x6056a7
xor al, al
mov esp, ebp
pop ebp
mov dword [ebp - 0x2f4], 0x15
mov dword [ebp - 0x494], 0x66
mov ecx, dword [ebp - 0x2f4]
cmp ecx, dword [ebp - 0x494]
jle 0x6056e4
push ecx
cmp dword [ebp + 8], 0
jne 0x6056e5
push 0x6f066a9c
call 0x6332d4
pop ecx
mov eax, 0x80070057
leave
mov dword [ebp - 0x62c], 0x52
mov dword [ebp - 0x410], 0xb5
mov edx, dword [ebp - 0x62c]
cmp edx, dword [ebp - 0x410]
jle 0x60578e
test esp, edx
stc
invalid
sub esp, 0xc
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
call fcn.00612f17
mov eax, dword [eax]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
push eax
call 0x604bc7
add esp, 4
movsx ecx, byte [eax]
test ecx, ecx
jne 0x605788
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.006098a7
popal
inc ecx
add byte [eax], al
add esp, 4
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 8
call 0x604cc7
movzx ecx, al
test ecx, ecx
je 0x60576f
mov edx, dword [ebp - 8]
push edx
call fcn.0060d587
add esp, 4
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x605786
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
push edx
call 0x604bd7
add esp, 4
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x605726
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
mov dword [ebp - 0x964], 0x21
mov dword [ebp - 0x790], 0xc6
mov eax, dword [ebp - 0x964]
cmp eax, dword [ebp - 0x790]
jle 0x6057b9
mov eax, dword [ebp + 8]
mov dword [0x10016dcc], eax
pop ebp
lea ecx, [ebp - 0x9c0]
push ecx
lea edx, [ebp - 0x78]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x757284], eax
mov dword [ebp - 0x554], 9
mov dword [ebp - 0x960], 0x8a
mov eax, dword [ebp - 0x554]
cmp eax, dword [ebp - 0x960]
jle 0x605886
push ecx
push ebx
push edi
push 0x280
xor ebx, ebx
call 0x64655f
mov edi, eax
test edi, edi
pop ecx
mov dword [ebp - 4], 0x280
je 0x605881
lea eax, [ebp - 4]
push eax
push edi
call 0x645be0
cmp eax, 0x6f
jne 0x605867
push edi
call 0x6472b6
push dword [ebp - 4]
call 0x64655a
and al, 0xd
add al, 0
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x605881
lea eax, [ebp - 4]
push eax
push edi
call 0x645be0
test eax, eax
jne 0x60587a
mov eax, edi
mov ecx, dword [eax + 0x1a0]
cmp ecx, 0x17
je 0x60585e
cmp ecx, 0x1c
jne 0x60585f
inc ebx
mov eax, dword [eax]
test eax, eax
jne 0x60584e
jmp 0x60587a
mov eax, dword [edi + 0x1a0]
cmp eax, 0x17
je 0x605877
cmp eax, 0x1c
jne 0x60587a
xor ebx, ebx
inc ebx
push edi
call 0x6472bb
pop ecx
pop edi
mov eax, ebx
pop ebx
leave
mov dword [ebp - 0x844], 0x43
mov dword [ebp - 0x840], 0x81
mov ecx, dword [ebp - 0x844]
cmp ecx, dword [ebp - 0x840]
sal bh, 0xff
dec dword [edi]
invalid
mov ch, 0
add byte [eax], al
push ebx
push esi
mov esi, ecx
and dword [esi + 8], 0
push edi
lea ebx, [esi + 0x10]
mov edi, 0x4c494146
mov ecx, ebx
mov dword [esi + 4], edi
mov dword [esi], 0x70d5b798
call 0x6060c5
lea ecx, [esi + 0x34]
call 0x60596d
mov eax, dword [ebp + 8]
test eax, eax
je 0x605968
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
or al, 0x8b
mov al, cl
add byte [eax], al
add byte [ecx + 0xc88e], cl
add byte [ebx + 0xcc88], cl
add byte [ecx + 0xcc8e], cl
add byte [ebx + 0xd088], cl
rol byte [eax], 1
add byte [eax], al
mov dword [esi + 0xd0], ecx
mov ecx, dword [eax + 0xd4]
mov dword [esi + 0xd4], ecx
mov edi, dword [eax + 0x44]
test edi, edi
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x10]
mov dword [ebp + 8], edx
je 0x605947
push ecx
push edi
push 1
mov ecx, ebx
call fcn.005fd4ab
test eax, eax
jne 0x605964
push dword [ebp + 8]
lea ecx, [esi + 0x34]
xor al, 0x57
push 8
call fcn.005fd4ab
test eax, eax
jne 0x605964
xor eax, eax
inc eax
neg eax
sbb eax, eax
and eax, 0x1c2b0eeb
add eax, 0x4c494146
mov dword [esi + 4], eax
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
mov dword [ebp - 0x2f0], 0x1e
mov dword [ebp - 0x8a8], 0x8c
mov edx, dword [ebp - 0x2f0]
cmp edx, dword [ebp - 0x8a8]
jle 0x605a63
std
invalid
add byte [eax], al
add bh, al
test dword [eax - 9], ebx
invalid
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
sub esp, 0x6c
push 0
push 0
push 0
push 0
push esi
call ecx
add esp, 0x14
test eax, eax
js 0x605a69
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 8]
push eax
push 0x40
lea ecx, [ebp - 0x6c]
push ecx
push esi
mov dword [ebp - 8], 0
call edx
add esp, 0x10
test eax, eax
jne 0x605a69
cmp dword [ebp - 8], 0x40
jne 0x605a64
mov eax, 0x5a4d
cmp word [ebp - 0x6c], ax
jne 0x605a64
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x605a64
mov ecx, dword [esi]
lea edx, [ebp - 0x14]
push edx
cdq
push edx
push eax
mov eax, dword [ecx + 0x14]
push 0
push esi
call eax
add esp, 0x14
test eax, eax
jne 0x605a69
mov eax, dword [ebp - 0x30]
cdq
cmp dword [ebp - 0x14], eax
jne 0x605a64
cmp dword [ebp - 0x10], edx
jne 0x605a64
mov ecx, dword [esi]
mov ecx, dword [ecx + 0xc]
lea edx, [ebp - 8]
push edx
push 4
lea eax, [ebp - 0xc]
push eax
push esi
call ecx
add esp, 0x10
test eax, eax
jne 0x605a69
cmp dword [ebp - 8], 4
jne 0x605a64
cmp dword [ebp - 0xc], 0x4550
jne 0x605a64
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 8]
push eax
push 0x14
lea ecx, [ebp - 0x28]
push ecx
push esi
call edx
add esp, 0x10
test eax, eax
jne 0x605a69
cmp dword [ebp - 8], 0x14
jne 0x605a64
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor eax, eax
mov esp, ebp
pop ebp
mov dword [ebp - 0x15c], 0x23
test dword [esi + edi*8 + 0x23ffff], esp
and eax, dword [eax]
add byte [eax], al
mov dword [ebp - 0x8a4], 0x95
mov eax, dword [ebp - 0x15c]
cmp eax, dword [ebp - 0x8a4]
jle 0x605ae9
sub esp, 0x10
push esi
push dword [ebp + 0xc]
lea eax, [ebp - 8]
push eax
mov esi, ecx
call 0x6052c3
push esi
push dword [esi + 0x18]
lea ecx, [ebp - 0x10]
call 0x63a22c
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 8]
call 0x62ec51
test al, al
jne 0x605acb
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
add eax, 0xc
push eax
call fcn.00603196
test al, al
jne 0x605acb
lea ecx, [ebp - 8]
jmp 0x605ada
push esi
push dword [esi + 0x18]
lea ecx, [ebp - 0x10]
call 0x63a22c
invalid