Function at 0x44a22e
Capabilities:
Parse pe header

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
test edi, edi
je 0x449f44
push edi
call 0x44a22e
pop ecx
test eax, eax
je 0x449f5f
mov edx, dword [eax]
xor ebx, ebx
lea ecx, [edi + edx]
mov esi, dword [edi + edx + 0x1c]
mov ebp, dword [edi + edx + 0x20]
mov dword [esp + 4], edx
add ecx, dword [eax + 4]
add esi, edi
add ebp, edi
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + edx + 0x24]
mov dword [esp], esi
mov esi, dword [edi + edx + 0x14]
add ecx, edi
mov dword [esp + 0x18], ecx
cmp esi, ebx
je 0x449f4e
mov edi, dword [ebp + ebx*4]
add edi, dword [esp + 0x94]
push edi
call fcn.00449a72
pop ecx
test eax, eax
je 0x449f41
push dword [esp + 0x9c]
push dword [esp + 0x9c]
push eax
push edi
call dword [esp + 0xb0]
add esp, 0x10
cmp al, 3
je 0x449f69
inc ebx
jmp 0x449f09
mov word [esi], 0x301
jmp 0x44a209
mov esi, dword [esp + 0x90]
mov word [esi], 0x201
jmp 0x44a209
mov word [esi], 0x401
jmp 0x44a209
mov eax, dword [esp + 0x18]
mov ecx, dword [esp]
movzx eax, word [eax + ebx*2]
mov ebx, dword [esp + 0x94]
mov eax, dword [ecx + eax*4]
add ebx, eax
cmp eax, dword [esp + 4]
jl 0x44a0ee
cmp dword [esp + 0x14], ebx
jb 0x44a0ee
mov ecx, ebx
call fcn.00447035
lea ecx, [esp + 0x24]
lea edi, [esp + 0x44]
dec edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov byte [ecx + 8], 0
push ecx
push edi
call fcn.00446f45
pop eax
pop ecx
cmp dword [edi + 8], 2
jne 0x44a100
lea edi, [esp + 0x44]
xor esi, esi
xor edx, edx
mov ecx, edi
push 0x48b1e4
call fcn.0044993f
pop ecx
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov ecx, edi
add ebp, ebx
xor edx, edx
inc edx
push 0x48b1f4
call fcn.0044993f
pop ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
lea edi, [esp + 0x70]
and dword [edi], 0
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], ecx
inc eax
mov dword [edi + 4], eax
and dword [edi + 8], 0
push ebp
push ebx
push edi
call fcn.0044701f
add esp, 0xc
lea eax, [esp + 0x50]
push eax
call fcn.0044a281
pop eax
mov eax, dword [edi + 8]
movsd xmm0, qword [edi]
lea ebp, [esp + 0x5c]
lea edi, [esp + 0x24]
mov ecx, edi
mov edx, ebp
mov dword [ebp + 8], eax
movsd qword [ebp], xmm0
call fcn.004490bc
and dword [ebp], 0
xor eax, eax
lea ebx, [esp + 8]
mov edx, edi
inc eax
mov ecx, ebx
mov dword [ebp + 4], eax
and dword [ebp + 8], 0
push ebp
call fcn.0044714d
pop eax
mov edx, dword [ebx + 8]
mov ecx, ebx
lea ebx, [esp + 0x50]
add edx, 0xfffffffe
push 0x48b204
call fcn.00449909
pop ecx
lea ecx, [esp + 0x1c]
mov dword [edi], 0x48b218
mov dword [edi + 4], 2
and dword [edi + 0x10], 0
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea edx, [esp + 0x68]
mov dword [edx], ecx
mov dword [edx + 4], fcn.0044c80c
mov dword [edi + 8], edx
xor edx, edx
mov ecx, ebp
inc edx
mov dword [edi + 0xc], edx
lea edi, [esp + 0x24]
mov edx, edi
call fcn.00448f06
push ebp
push ebx
call fcn.00447361
pop ecx
pop edx
test al, al
je 0x44a112
push ebp
push ebx
call fcn.00447376
pop ecx
pop edx
test eax, eax
lea esi, [esp + 8]
cmove eax, esi
push eax
push edi
call fcn.00434c20
pop eax
pop ecx
mov ecx, esi
call fcn.00447062
mov eax, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x24]
jmp 0x44a185
mov esi, dword [esp + 0x90]
mov dword [esi + 4], ebx
mov byte [esi], 0
jmp 0x44a209
mov esi, dword [esp + 0x90]
mov dword [esi + 4], ebx
mov byte [esi], 0
jmp 0x44a202
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esp + 8]
lea ecx, [esp + 0x1c]
mov ebp, ebx
mov bl, 1
mov dword [esp + 0x2c], eax
lea eax, [0x480de9]
movsd qword [esp + 0x24], xmm0
mov dword [ecx], eax
mov eax, dword [ecx]
mov dword [ecx], 0xcf45747
push dword [ecx]
push eax
call fcn.0044940c
pop ecx
pop edx
push 4
pop ecx
xor edx, edx
test bl, 1
je 0x44a168
movzx esi, byte [edx + 0x48b228]
xor ebx, ebx
or esi, 0xbf0c8500
xor esi, dword [eax + edx]
mov edx, ecx
jmp 0x44a14d
lea ebx, [esp + 0x24]
lea edx, [esp + 0x1c]
mov dword [edx], esi
mov ecx, ebx
push 4
call fcn.004077de
pop eax
mov eax, dword [ebx + 8]
movsd xmm0, qword [ebx]
mov ebx, ebp
mov dword [esp + 0x10], eax
movsd qword [esp + 8], xmm0
lea esi, [esp + 0x3c]
push 0x449d6e
push dword [esp + 0x14]
push dword [esp + 0x14]
push esi
call fcn.00449e0b
add esp, 0x10
cmp byte [esi], 0
je 0x44a1bc
mov esi, dword [esp + 0x90]
mov word [esi], 0x301
jmp 0x44a1e5
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x90]
test al, 1
jne 0x44a213
push fcn.00449c67
push dword [esp + 4]
push dword [esp + 0xc]
push dword [esp + 0x4c]
push esi
call fcn.00449eb2
add esp, 0x14
lea ecx, [esp + 0x5c]
call fcn.00447062
lea ecx, [esp + 8]
call fcn.00447062
push ebx
call fcn.00449995
pop eax
lea edi, [esp + 0x44]
push edi
call fcn.0044992e
pop eax
mov eax, esi
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esp + 0x24], ah
push 0x48b22c
push 0x48ae78
push edi
push 0x2b
push 0x48ae4c
call fcn.0047c2b0
push esi
sub esp, 0xe0
mov ecx, dword [esp + 0xe8]
xor eax, eax
test ecx, ecx
je 0x44a279
cmp word [ecx], 0x5a4d
jne 0x44a279
mov edx, dword [ecx + 0x3c]
cmp dword [ecx + edx], 0x4550
jne 0x44a279
add ecx, edx
mov esi, esp
add ecx, 0x18
push 0xe0
push ecx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ecx, ecx
cmp word [esi], 0x10b
lea eax, [esp + 0x60]
cmovne eax, ecx
add esp, 0xe0
pop esi
ret