Function at 0x45af00
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x1e3c
call fcn.0051bb00
mov eax, dword [0x984164]
xor eax, esp
mov dword [esp + 0x1e34], eax
mov eax, dword [esp + 0x1e44]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1e4c]
push edi
mov ebx, ecx
mov edi, edx
mov dword [esp + 0x30], eax
mov dword [eax], 0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
mov eax, esi
cmp esi, 0x1000
jbe 0x45af4f
mov eax, 0x1000
mov edx, dword [ebx]
mov edx, dword [edx + 0x28]
push 0
lea ecx, [esp + 0x18]
push ecx
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0
mov ecx, ebx
call edx
test eax, eax
jl 0x45b38c
mov ecx, dword [esp + 0x14]
cmp ecx, 0x61
jb 0x45b38c
mov eax, 0x5a4d
cmp word [esp + 0x40], ax
jne 0x45b38c
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
cmp eax, esi
jae 0x45b37e
test al, 3
jne 0x45b37e
lea ebp, [esp + eax + 0x40]
mov byte [esp + 0x13], 0
cmp eax, 0xef8
jbe 0x45b00f
cmp ecx, 0x1000
jb 0x45afea
mov edx, dword [ebx]
mov edx, dword [edx + 0x28]
push 0
lea ecx, [esp + 0x18]
push ecx
push 0x1000
lea ecx, [esp + 0x4c]
push ecx
push 0
push eax
mov ecx, ebx
call edx
test eax, eax
jl 0x45b37e
mov byte [esp + 0x13], 1
jmp 0x45b007
cmp eax, ecx
jae 0x45b37e
sub ecx, eax
push ecx
lea eax, [esp + 0x44]
push ebp
push eax
mov dword [esp + 0x20], ecx
call fcn.005087f0
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea ebp, [esp + 0x40]
cmp ecx, 0x1000
jae 0x45b02e
mov edx, 0x1000
sub edx, ecx
push edx
lea eax, [esp + ecx + 0x44]
push 0
push eax
call fcn.0051c1b0
add esp, 0xc
cmp dword [ebp], 0x4550
jne 0x45b37e
movzx eax, word [ebp + 6]
mov dword [esp + 0x20], eax
cmp eax, 0xc0
ja 0x45b37e
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
add eax, eax
lea esi, [eax + 0xe8]
mov dword [esp + 0x2c], eax
call fcn.004540d0
mov edi, eax
test edi, edi
je 0x45b385
mov ecx, dword [esp + 0x1e50]
mov dword [edi], ebx
mov dword [edi + 0xc], ecx
mov dx, word [ebp + 4]
mov word [edi + 0x10], dx
mov ax, word [ebp + 0x16]
mov word [edi + 0x12], ax
mov ecx, dword [ebp + 8]
movzx eax, dx
mov dword [edi + 0x14], ecx
cmp eax, 0x14c
je 0x45b0eb
cmp eax, 0x200
je 0x45b0ae
cmp eax, 0x8664
jne 0x45b373
mov edx, 0x20b
cmp word [ebp + 0x18], dx
jne 0x45b373
mov eax, dword [ebp + 0x30]
mov dword [edi + 0x18], eax
mov ecx, dword [ebp + 0x34]
mov dword [edi + 0x1c], ecx
mov edx, dword [ebp + 0x28]
mov dword [edi + 0x20], edx
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 0x24], ecx
lea ecx, [ebp + 0x88]
jmp 0x45b121
mov edx, 0x10b
cmp word [ebp + 0x18], dx
jne 0x45b373
mov eax, dword [ebp + 0x34]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], 0
mov ecx, dword [ebp + 0x28]
mov dword [edi + 0x20], ecx
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x18], edx
lea ecx, [ebp + 0x78]
mov esi, dword [ebp + 0x50]
mov edx, dword [ebp + 0x3c]
lea ebx, [esi - 1]
mov dword [esp + 0x1c], esi
cmp ebx, 0x77000000
jae 0x45b373
cmp dword [esp + 0x18], esi
ja 0x45b373
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x45b373
lea esi, [ebx - 1]
test ebx, esi
jne 0x45b373
lea esi, [edx - 1]
mov dword [esp + 0x3c], esi
test edx, esi
jne 0x45b373
cmp edx, ebx
ja 0x45b373
cmp edx, 0x200
jae 0x45b182
cmp edx, ebx
jne 0x45b373
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x30], edx
xor edx, edx
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x18]
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x34], edx
mov dword [edi + 0x3c], eax
cmp eax, edx
je 0x45b1c7
cmp eax, 0x10
jbe 0x45b1aa
lea eax, [edx + 0x10]
lea edx, [edi + 0x40]
lea ecx, [ecx]
mov esi, dword [ecx]
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov dword [edx + 4], esi
add ecx, 8
add edx, 8
sub eax, 1
jne 0x45b1b0
xor edx, edx
lea esi, [edi + 0xc0]
mov dword [esi + 4], edx
mov dword [esi + 0xc], edx
mov dword [esi + 0x14], edx
cmp ebx, 0x1000
jb 0x45b208
mov eax, dword [esp + 0x18]
cmp eax, edx
je 0x45b373
cmp byte [esp + 0x13], 0
mov dword [esi], 0x40000000
mov dword [esi + 8], eax
je 0x45b21f
cmp eax, 0x1000
ja 0x45b21f
mov eax, 0x1000
jmp 0x45b21f
mov eax, dword [esp + 0x1c]
mov dword [esi + 8], eax
add eax, 0xfff
mov dword [esi], 0xe0000000
and eax, 0xfffff000
mov ecx, dword [esp + 0x1e50]
cmp eax, ecx
jbe 0x45b22c
mov eax, ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], edx
mov dword [edi + 0x38], eax
cmp eax, edx
je 0x45b369
movzx eax, word [ebp + 0x14]
mov ebx, dword [esp + 0x2c]
add eax, 0x18
add ebp, eax
lea ecx, [ebx + ebp]
lea edx, [esp + 0x1040]
cmp ecx, edx
jbe 0x45b2a7
cmp dword [esp + 0x14], 0x1000
jb 0x45b373
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
push 0
lea ebp, [esp + 0x18]
push ebp
push ebx
lea ebp, [esp + 0x4c]
push ebp
mov ebp, dword [esp + 0x38]
add eax, ebp
push 0
push eax
mov eax, dword [edx + 0x28]
call eax
test eax, eax
jl 0x45b373
cmp dword [esp + 0x14], ebx
jb 0x45b373
lea ebp, [esp + 0x40]
mov ecx, dword [ebp + 0x24]
add esi, 0x28
mov dword [esi], ecx
mov edx, dword [ebp + 0xc]
mov dword [esi + 4], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + eax]
mov dword [esp + 0x28], edx
cmp edx, eax
jb 0x45b373
mov edx, dword [ebp + 8]
xor ebx, ebx
cmp edx, ebx
jne 0x45b2d5
mov edx, ecx
cmp dword [esp + 0x24], 0x1000
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
jb 0x45b34f
mov ebx, dword [esi]
and ebx, 0x90000000
cmp ebx, 0x90000000
jne 0x45b30d
add edx, 0xfff
and edx, 0xfffff000
add dword [edi + 0x34], edx
test ecx, ecx
je 0x45b34f
test eax, eax
je 0x45b34f
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
add ecx, 0xfff
add edx, ebx
and eax, 0xfffffe00
and ecx, 0xfffff000
not ebx
and edx, ebx
add ecx, eax
cmp edx, ecx
jbe 0x45b33c
mov edx, ecx
mov ecx, dword [esp + 0x1e50]
cmp edx, ecx
jbe 0x45b349
mov edx, ecx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], edx
mov eax, dword [ebp]
mov dword [esi + 0x20], eax
mov ecx, dword [ebp + 4]
add ebp, 0x28
sub dword [esp + 0x20], 1
mov dword [esi + 0x24], ecx
jne 0x45b2a7
mov edx, dword [esp + 0x30]
mov dword [edx], edi
xor eax, eax
jmp 0x45b391
mov eax, dword [esp + 0x38]
mov ecx, edi
call fcn.004540b0
mov eax, 0xc000007b
jmp 0x45b391
mov eax, 0xc0000017
jmp 0x45b391
mov eax, 0xc000012f
mov ecx, dword [esp + 0x1e44]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005078c8
add esp, 0x1e3c
ret 8