Function at 0x446870
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x505034]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x44]
mov esi, dword [ebx + 0x40]
push 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
call fcn.004500e0
test al, al
je 0x446a04
mov eax, 0x5a4d
cmp word [esp + 0x38], ax
jne 0x446a04
push 4
lea eax, [esp + 0x34]
mov ecx, ebx
push eax
push 0
push 0x3c
call fcn.004500e0
test al, al
je 0x446a04
push 4
lea eax, [esp + 0x40]
mov ecx, ebx
push eax
push 0
push dword [esp + 0x3c]
call fcn.004500e0
test al, al
je 0x446a04
cmp dword [esp + 0x3c], 0x4550
jne 0x446a04
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x14
push eax
lea eax, [esp + 0x44]
mov ecx, ebx
push eax
call fcn.0044fde0
test al, al
je 0x446a04
cmp dword [esp + 0x34], 0x14
je 0x446951
mov dword [ebx + 0x60], 0x1e
jmp 0x446a04
mov ecx, dword [esp + 0x30]
mov edx, 0x8664
mov ax, word [esp + 0x40]
add ecx, 0x98
cmp ax, dx
je 0x446988
mov edx, 0x200
cmp ax, dx
je 0x446988
mov edx, 0x284
cmp ax, dx
je 0x446988
mov edx, 0xaa64
cmp ax, dx
jne 0x44698b
add ecx, 0x10
push 4
lea eax, [esp + 0x38]
push eax
push 0
push ecx
mov ecx, ebx
call fcn.004500e0
test al, al
je 0x446a04
mov edi, dword [esp + 0x34]
test edi, edi
je 0x446a04
xor esi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
cmp edi, 7
jbe 0x446a00
mov eax, 7
nop dword [eax]
dec eax
mov ecx, ebx
push 1
mov dword [esp + 0x58], eax
sub edi, 1
lea eax, [esp + 0x33]
push eax
sbb esi, 0
push esi
push edi
call fcn.004500e0
test al, al
je 0x4469f0
cmp byte [esp + 0x2f], 0
jne 0x4469f0
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
jmp 0x4469f8
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4469c0
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x446b5e
jg 0x446a1b
cmp esi, 0x48
jb 0x446abd
mov edi, eax
sub esi, 8
push 8
lea eax, [esp + 0x58]
sbb edi, 0
push eax
push edi
push esi
mov ecx, ebx
call fcn.004500e0
test al, al
je 0x446a6c
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446a6c
cmp dword [eax + 4], 0x42326769
jne 0x446a6c
mov ecx, dword [esp + 0x20]
mov eax, 0x40
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x446c1e
mov dword [ecx], 5
jmp 0x446c1e
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x446a80
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x1c], ecx
je 0x446abb
mov edi, dword [esp + 0x1c]
mov esi, eax
push 8
sub esi, 8
lea eax, [esp + 0x58]
push eax
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.004500e0
test al, al
je 0x446ab5
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446ab5
cmp dword [eax + 4], 0x42326769
je 0x446a4c
mov eax, dword [esp + 0x10]
jmp 0x446abd
mov eax, ecx
test eax, eax
jl 0x446b5e
mov eax, dword [esp + 0x18]
jg 0x446ad4
cmp eax, 0x78
jb 0x446b62
mov edi, dword [esp + 0x10]
mov esi, eax
push 8
sub esi, 0x38
lea eax, [esp + 0x58]
push eax
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.004500e0
test al, al
je 0x446b0d
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446b0d
cmp dword [eax + 4], 0x42326769
je 0x446a4c
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x446b25
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x1c], ecx
je 0x446c69
mov edi, dword [esp + 0x1c]
mov esi, eax
push 8
sub esi, 0x38
lea eax, [esp + 0x58]
push eax
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.004500e0
test al, al
je 0x446b5e
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446b5e
cmp dword [eax + 4], 0x42326769
je 0x446a4c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x446c95
jg 0x446b79
cmp eax, 0x30
jb 0x446c95
mov edi, dword [esp + 0x10]
mov esi, eax
push 8
sub esi, 8
lea eax, [esp + 0x58]
push eax
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.004500e0
test al, al
je 0x446bae
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446bae
cmp dword [eax + 4], 0x646e6769
je 0x446c07
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x446bc6
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x1c], ecx
je 0x446c95
mov edi, dword [esp + 0x1c]
mov esi, eax
push 8
sub esi, 8
lea eax, [esp + 0x58]
push eax
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.004500e0
test al, al
je 0x446c95
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x446c95
cmp dword [eax + 4], 0x646e6769
jne 0x446c95
mov ecx, dword [esp + 0x20]
mov eax, 0x28
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x446c1e
mov dword [ecx], 1
sub esi, eax
push ecx
sbb edi, 0
mov ecx, ebx
push edi
push esi
call fcn.0044fcd0
mov ecx, dword [esp + 0x24]
mov al, 1
mov byte [esp + 0x2f], al
test ecx, ecx
je 0x446c76
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
push ecx
mov ecx, ebx
call fcn.0044fde0
test al, al
je 0x446c65
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
je 0x446c72
mov dword [ebx + 0x60], 0x1e
xor al, al
jmp 0x446c76
mov eax, dword [esp + 0x18]
jmp 0x446b66
mov al, byte [esp + 0x2f]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x446c97
mov dword [ecx], esi
mov dword [ecx + 4], edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.00479e61
mov esp, ebp
pop ebp
ret
xor al, al
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00479e61
mov esp, ebp
pop ebp
ret