Function at 0x404fc0
Capabilities:
Parse pe header

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x405016
movzx eax, word [edi]
cmp eax, 0x5a4d
jne 0x405016
mov eax, dword [edi + 0x3c]
cmp eax, 0x400
jg 0x405016
cmp dword [edi + eax], 0x4550
jne 0x405016
mov edx, dword [edi + eax + 0x80]
test edx, edx
je 0x405016
mov ecx, edx
mov edx, dword [edi + eax + 0x84]
mov al, 1
mov dword [esp + 0x30], edx
test edx, edx
je 0x405018
mov eax, ecx
add eax, edi
xor ecx, ecx
mov dword [esp + 0x2c], eax
jmp 0x405035
xor eax, eax
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x34]
add ecx, 0x14
cmp ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jae 0x405755
mov ebp, dword [eax + ecx]
mov ebx, dword [eax + ecx + 0x10]
test ebp, ebp
jne 0x40504a
mov ebp, ebx
test ebx, ebx
je 0x405755
mov dword [esp + 0x34], ecx
mov eax, dword [ecx + eax + 0xc]
add eax, edi
mov dword [esp + 0x10], eax
add ebx, edi
add ebp, edi
jmp 0x40507c
mov esi, 0x405760
nop word cs:[eax + eax]
mov edi, dword [esp + 0x4c]
mov dword [ebx], esi
add ebx, 4
add ebp, 4
cmp dword [ebp], 0
js 0x405090
mov eax, dword [ebx]
test eax, eax
jne 0x4050b2
jmp 0x405020
mov esi, dword [0x48ab3c]
push dword [esp + 0x10]
call dword [0x48ab64]
movzx ecx, word [ebp]
push ecx
push eax
call esi
mov dword [ebx], eax
test eax, eax
je 0x405020
cmp eax, dword [ebp]
jne 0x405076
add edi, eax
add edi, 2
mov esi, dword [0x48ab3c]
push dword [esp + 0x10]
call dword [0x48ab64]
push edi
push eax
call esi
mov esi, eax
cmp byte [0x489d38], 1
jne 0x405070
vmovaps xmm0, xmmword [str.HutBmnidhcD_dnM]
vmovups xmmword [esp], xmm0
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp], 0xf
nop
test eax, eax
nop
xor byte [esp + 1], 0x10
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp + 3], 1
nop
test eax, eax
nop
xor byte [esp + 4], 2
nop
test eax, eax
nop
xor byte [esp + 5], 3
nop
test eax, eax
nop
xor byte [esp + 6], 4
nop
test eax, eax
nop
xor byte [esp + 7], 5
nop
test eax, eax
nop
xor byte [esp + 8], 6
nop
test eax, eax
nop
xor byte [esp + 9], 7
nop
test eax, eax
nop
xor byte [esp + 0xa], 8
nop
test eax, eax
nop
xor byte [esp + 0xb], 9
nop
test eax, eax
nop
xor byte [esp + 0xc], 0xa
nop
test eax, eax
nop
xor byte [esp + 0xd], 0xb
nop
test eax, eax
nop
xor byte [esp + 0xe], 0xc
mov eax, esp
push eax
push edi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x40505e
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
vmovaps xmm0, xmmword [str.HutBmnidhcD_dn_]
vmovups xmmword [esp], xmm0
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp], 0xf
nop
test eax, eax
nop
xor byte [esp + 1], 0x10
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp + 3], 1
nop
test eax, eax
nop
xor byte [esp + 4], 2
nop
test eax, eax
nop
xor byte [esp + 5], 3
nop
test eax, eax
nop
xor byte [esp + 6], 4
nop
test eax, eax
nop
xor byte [esp + 7], 5
nop
test eax, eax
nop
xor byte [esp + 8], 6
nop
test eax, eax
nop
xor byte [esp + 9], 7
nop
test eax, eax
nop
xor byte [esp + 0xa], 8
nop
test eax, eax
nop
xor byte [esp + 0xb], 9
nop
test eax, eax
nop
xor byte [esp + 0xc], 0xa
nop
test eax, eax
nop
xor byte [esp + 0xd], 0xb
nop
test eax, eax
nop
xor byte [esp + 0xe], 0xc
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x40570f
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
vmovsd xmm0, qword [str.QPggdvne]
vmovsd qword [esp], xmm0
mov dword [esp + 8], 0x7a66686c
mov word [esp + 0xc], 0x796e
mov byte [esp + 0xe], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp], 0xe
nop
test eax, eax
nop
xor byte [esp + 1], 0xf
nop
test eax, eax
nop
xor byte [esp + 2], 0x10
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp + 4], 1
nop
test eax, eax
nop
xor byte [esp + 5], 2
nop
test eax, eax
nop
xor byte [esp + 6], 3
nop
test eax, eax
nop
xor byte [esp + 7], 4
nop
test eax, eax
nop
xor byte [esp + 8], 5
nop
test eax, eax
nop
xor byte [esp + 9], 6
nop
test eax, eax
nop
xor byte [esp + 0xa], 7
nop
test eax, eax
nop
xor byte [esp + 0xb], 8
nop
test eax, eax
nop
xor byte [esp + 0xc], 9
nop
test eax, eax
nop
xor byte [esp + 0xd], 0xa
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x405719
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
vmovsd xmm0, qword [str._efphgn]
vmovsd qword [esp], xmm0
mov dword [esp + 8], 0x6c786866
mov word [esp + 0xc], 0x7f
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
xor byte [esp + 1], 1
nop
test eax, eax
nop
xor byte [esp + 2], 2
nop
test eax, eax
nop
xor byte [esp + 3], 3
nop
test eax, eax
nop
xor byte [esp + 4], 4
nop
test eax, eax
nop
xor byte [esp + 5], 5
nop
test eax, eax
nop
xor byte [esp + 6], 6
nop
test eax, eax
nop
xor byte [esp + 7], 7
nop
test eax, eax
nop
xor byte [esp + 8], 8
nop
test eax, eax
nop
xor byte [esp + 9], 9
nop
test eax, eax
nop
xor byte [esp + 0xa], 0xa
nop
test eax, eax
nop
xor byte [esp + 0xb], 0xb
nop
test eax, eax
nop
xor byte [esp + 0xc], 0xc
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x405723
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
mov byte [esp + 0xa], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
vmovsd xmm0, qword [str.__p___ar]
vmovsd qword [esp], xmm0
nop
test eax, eax
nop
mov byte [esp + 8], 0x67
nop
test eax, eax
nop
mov byte [esp + 9], 0x76
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x40572d
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
vmovsd xmm0, qword [str.__p___wa]
vmovsd qword [esp], xmm0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov dword [esp + 8], 0x766772
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x405737
cmp byte [0x489d38], 1
mov ecx, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
mov byte [esp + 0xa], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
vmovsd xmm0, qword [str.__p___ar]
vmovsd qword [esp], xmm0
nop
test eax, eax
nop
mov byte [esp + 8], 0x67
nop
test eax, eax
nop
mov byte [esp + 9], 0x63
mov eax, esp
push eax
push edi
call ecx
add esp, 8
test eax, eax
je 0x405741
cmp byte [0x489d38], 1
mov eax, dword [sym.imp.msvcrt.dll__stricmp]
jne 0x405070
mov byte [esp + 0x28], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov dword [esp + 0x24], 0x74697865
lea ecx, [esp + 0x24]
push ecx
push edi
call eax
add esp, 8
test eax, eax
je 0x40574b
mov byte [esp + 0x21], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov dword [esp + 0x1c], 0x6978455f
nop
test eax, eax
nop
mov byte [esp + 0x20], 0x74
lea eax, [esp + 0x1c]
push eax
push edi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x40574b
mov byte [esp + 0x19], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov dword [esp + 0x14], 0x6978655f
nop
test eax, eax
nop
mov byte [esp + 0x18], 0x74
lea eax, [esp + 0x14]
push eax
push edi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x40574b
mov byte [esp + 0xa], 0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
vmovsd xmm0, qword [str.quick_ex]
vmovsd qword [esp], xmm0
nop
test eax, eax
nop
mov byte [esp + 8], 0x69
nop
test eax, eax
nop
mov byte [esp + 9], 0x74
mov eax, esp
push eax
push edi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x40574b
cmp byte [0x489d38], 1
jne 0x405070
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
vmovsd xmm0, qword [str.ExitProc]
vmovsd qword [esp], xmm0
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov dword [esp + 8], 0x737365
mov eax, esp
push eax
push edi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
mov edi, dword [esp + 0x4c]
jne 0x405074
mov esi, 0x404e70
jmp 0x405074
mov esi, 0x405770
jmp 0x405070
mov esi, 0x404e20
jmp 0x405070
mov esi, 0x404e40
jmp 0x405070
mov esi, 0x404df0
jmp 0x405070
mov esi, 0x404e00
jmp 0x405070
mov esi, 0x404e10
jmp 0x405070
mov esi, 0x404e60
jmp 0x405070
mov al, 1
jmp 0x405018