Function at 0x44cc06
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [0x457188]
add ecx, 0x10
shr edi, cl
movsx esi, word [0x457170]
add esi, 8
mov ecx, esi
mov ebx, edi
shl ebx, cl
mov dword [ebp - 0x114], ebx
mov eax, ebx
cmp word [eax], 0x5a4d
je 0x44cc58
movsx eax, word [0x457114]
movsx edx, word [0x45716c]
lea eax, [eax + edx + 0xfffa]
sub ebx, eax
jmp 0x44cc30
mov eax, dword [0x457098]
add eax, 0x35
add eax, dword [0x457108]
mov edx, ebx
add edx, eax
mov dword [ebp - 0x10c], edx
mov eax, edx
mov edx, ebx
add edx, dword [eax]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp + 8]
cmp edx, eax
jbe 0x44cc9b
movsx eax, word [0x457090]
mov edx, dword [0x457104]
lea eax, [eax + edx + 0xfffc]
sub ebx, eax
jmp 0x44cc30
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x11c], eax
movzx eax, word [eax]
cmp eax, 0x4550
je 0x44ccc2
mov eax, dword [0x4571b4]
add eax, 0xffff
sub ebx, eax
jmp 0x44cc30
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x120], eax
mov ecx, ebx
add ecx, eax
mov dword [ebp - 0x110], ecx
mov eax, ecx
mov edx, ebx
add edx, dword [eax + 0xc]
push edx
lea eax, [ebp - 0x103]
push eax
call fcn.00450b60
movsx eax, word [0x457154]
sub eax, 8
mov dword [ebp - 4], eax
jmp 0x44cd20
mov eax, dword [ebp - 4]
mov al, byte [ebp + eax - 0x103]
cmp al, 0x61
jle 0x44cd1d
cmp al, 0x7a
jge 0x44cd1d
mov eax, dword [ebp - 4]
lea eax, [ebp + eax - 0x103]
sub byte [eax], 0x20
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
movsx eax, byte [ebp + eax - 0x103]
mov edx, dword [0x4570e4]
add edx, dword [0x45718c]
sub edx, 3
cmp eax, edx
jne 0x44ccfe
cmp byte [ebp - 0x103], 0x4b
jne 0x44cd74
cmp byte [ebp - 0x102], 0x45
jne 0x44cd74
cmp byte [ebp - 0x101], 0x52
jne 0x44cd74
cmp byte [ebp - 0xfe], 0x4c
jne 0x44cd74
cmp byte [ebp - 0xfd], 0x33
jne 0x44cd74
cmp byte [ebp - 0xfc], 0x32
je 0x44cd79
jmp 0x44cfb6
mov eax, dword [0x457144]
add eax, dword [0x4571b8]
sub eax, 8
mov dword [ebp - 0x108], eax
jmp 0x44cfa1
mov eax, dword [ebp - 0x108]
mov ecx, dword [0x4571c8]
add ecx, dword [0x457094]
sub ecx, 4
mul ecx
mov dword [ebp - 0x228], eax
mov edx, ebx
add edx, eax
mov eax, dword [ebp - 0x110]
add edx, dword [eax + 0x20]
mov dword [ebp - 0x10c], edx
mov eax, edx
mov edx, ebx
add edx, dword [eax]
mov dword [ebp - 0x224], edx
push edx
lea eax, [ebp - 0x21f]
push eax
call fcn.00450b60
mov eax, dword [0x457144]
add eax, dword [0x4570a8]
cmp byte [ebp + eax - 0x227], 0x47
jne 0x44cf9b
movsx eax, word [0x45716c]
add eax, dword [0x45713c]
cmp byte [ebp + eax - 0x223], 0x74
jne 0x44cf9b
mov eax, dword [0x4570a0]
cmp byte [ebp + eax - 0x220], 0x50
jne 0x44cf9b
mov eax, dword [0x457138]
add eax, dword [0x457158]
cmp byte [ebp + eax - 0x221], 0x63
jne 0x44cf9b
mov eax, dword [0x457160]
add eax, dword [0x45712c]
cmp byte [ebp + eax - 0x225], 0x41
jne 0x44cf9b
mov eax, dword [0x457120]
add eax, 4
add eax, dword [0x4570b8]
cmp byte [ebp + eax - 0x21f], 0x72
jne 0x44cf9b
mov eax, dword [ebp - 0x108]
movsx ecx, word [0x457114]
movsx esi, word [0x4570d0]
add ecx, esi
mul ecx
mov dword [ebp - 0x288], eax
mov edx, ebx
add edx, eax
mov eax, dword [ebp - 0x110]
add edx, dword [eax + 0x24]
mov dword [ebp - 0x114], edx
movzx eax, word [edx]
mov dword [ebp - 0x22c], eax
mov ecx, dword [0x4571cc]
add ecx, dword [0x45709c]
sub ecx, 8
mul ecx
mov dword [ebp - 0x28c], eax
mov edx, ebx
add edx, eax
mov eax, dword [ebp - 0x110]
add edx, dword [eax + 0x1c]
mov dword [ebp - 0x10c], edx
mov eax, edx
mov edx, ebx
add edx, dword [eax]
mov dword [ebp - 0x230], edx
mov dword [0x4571d4], ebx
mov dword [0x4531f8], edx
lea edi, [ebp - 0x23d]
lea esi, str.CreateThread
mov ecx, 0xd
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x252]
lea esi, str.EnterCriticalSection
mov ecx, 0x15
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x26c]
lea esi, str.InitializeCriticalSection
mov ecx, 0xd
rep movsw word es:[edi], word [esi]
lea edi, [ebp - 0x281]
lea esi, str.LeaveCriticalSection
mov ecx, 0x15
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x23d]
push eax
push dword [0x4571d4]
call dword [0x4531f8]
mov dword [0x456b90], eax
lea eax, [ebp - 0x252]
push eax
push dword [0x4571d4]
call dword [0x4531f8]
mov dword [0x45665c], eax
lea eax, [ebp - 0x26c]
push eax
push dword [0x4571d4]
call dword [0x4531f8]
mov dword [0x452008], eax
lea eax, [ebp - 0x281]
push eax
push dword [0x4571d4]
call dword [0x4531f8]
mov dword [0x45564c], eax
jmp 0x44cfb6
inc dword [ebp - 0x108]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0x18]
cmp dword [ebp - 0x108], eax
jb 0x44cd92
pop edi
pop esi
pop ebx
leave
ret