Function at 0x4494f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
cmp dword [ebp + 0x14], 4
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
jne 0x449a97
cmp dword [ebp + 0x20], 1
jne 0x449a97
xor eax, eax
lea edi, [esi + 0x2c]
mov dword [esp + 0x20], eax
mov ecx, 4
mov ebx, dword [edi + 0x14]
and ebx, 0xfffffffc
cmp ebx, 4
cmovb ebx, ecx
mov ecx, dword [edi - 0x14]
test ecx, ecx
je 0x44954d
cmp ebx, dword [edi]
je 0x44957c
push 0x8000
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [edi - 0x14], 0
mov dword [edi], 0
test ebx, ebx
je 0x449a89
push 4
push 0x1000
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x449a89
mov dword [edi - 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [edi], ebx
inc eax
add edi, 4
mov dword [esp + 0x20], eax
mov ecx, 4
cmp eax, 5
jb 0x449521
mov eax, dword [esi + 0x18]
lea ebx, [esi + 0x18]
mov dword [esi + 0x98], eax
lea edi, [esi + 0xd4]
mov dword [esi + 0xa8], eax
mov ecx, 0x81
mov dword [esi + 0x54], 0
xorps xmm0, xmm0
mov dword [esi + 0x64], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x9c], eax
mov dword [esi + 0xac], eax
mov dword [esi + 0x58], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov eax, dword [esi + 0x20]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xb0], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0xa4], eax
mov dword [esi + 0xb4], eax
mov eax, 0x4000400
mov dword [esi + 0x60], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0xc0], 3
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xd0], 0
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x28]
lea ecx, [esi + 0x98]
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.0042a670
mov edi, dword [esp + 0x3c]
test eax, eax
jne 0x449996
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ecx
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0xc0]
cmp eax, 4
jae 0x44987a
mov edx, dword [ebx + 0xa8]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + edx*4]
mov dword [esp + 0x28], eax
lea eax, [ebx + edx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + edx*4 + 0x80]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x90]
lea eax, [eax + edx*4]
mov dword [ebx + edx*4 + 0x80], ecx
mov dword [eax], ecx
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x4c]
mov edi, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov dword [esp + 0x34], eax
test edi, edi
je 0x44976c
mov esi, dword [esp + 0x14]
mov edx, edi
sub esi, ecx
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x449757
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x24]
lea eax, [ebx + 0x3c]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
mov dword [esp + 0x14], eax
jne 0x44984a
lea eax, [edx - 1]
mov dword [esp + 0x30], eax
lea esi, [esp + 0x10]
mov eax, dword [ebx + edx*4 + 0x14]
mov edx, dword [esp + 0x28]
sub eax, edi
push esi
push eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edx]
mov eax, dword [eax]
add eax, edi
push eax
push edx
call dword [ecx + 0xc]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 8]
mov dword [edx], eax
test ecx, ecx
je 0x44981a
nop dword [eax + eax]
mov edx, dword [esp + 0x24]
add dword [ebx + edx*8 + 0x60], ecx
adc dword [ebx + edx*8 + 0x64], 0
add edi, ecx
test eax, eax
jne 0x449816
cmp edi, 4
jae 0x449816
lea eax, [edx - 1]
cmp eax, 2
jae 0x449816
mov eax, dword [ebx + edx*4 + 0x14]
lea esi, [esp + 0x10]
mov edx, dword [esp + 0x28]
sub eax, edi
push esi
push eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edx]
mov eax, dword [eax]
add eax, edi
push eax
push edx
call dword [ecx + 0xc]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 8]
mov dword [edx], eax
test ecx, ecx
jne 0x4497c0
jmp 0x44981a
mov edx, dword [esp + 0x14]
test edi, edi
je 0x44984a
cmp dword [esp + 0x30], 2
jae 0x449844
mov ecx, dword [esp + 0x34]
mov eax, edi
and eax, 3
mov dword [ecx], eax
cmp edi, 4
jae 0x449842
cmp dword [edx], 0
jne 0x44984a
mov dword [edx], 1
jmp 0x44984a
sub edi, eax
mov eax, dword [esp + 0x38]
add dword [eax], edi
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + ecx*4 + 0xa8]
mov edx, dword [esi + ecx*4 + 0x54]
cmp eax, dword [esi + ecx*4 + 0x18]
je 0x44998c
test edx, edx
je 0x4498f1
cmp dword [esp + 0x20], 0
jne 0x4498f1
mov dword [esp + 0x20], edx
jmp 0x4498f1
mov eax, dword [esi + 0xb8]
mov edx, dword [esi + 0x28]
sub eax, edx
je 0x4498a7
add ecx, eax
push eax
mov eax, dword [ebp + 0x18]
adc edi, 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edi
mov ecx, dword [eax]
call fcn.00449110
test eax, eax
jne 0x449a9c
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3c]
test eax, eax
je 0x4498d8
mov eax, dword [eax]
test eax, eax
je 0x4498d8
mov edx, dword [eax]
sub edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
sbb eax, edi
mov dword [esp + 0x38], 0
cmp dword [esp + 0x38], eax
jb 0x4498d8
ja 0x4498d6
cmp ecx, edx
jbe 0x4498d8
mov ecx, edx
mov eax, dword [esi + 0x28]
mov dword [esi + 0xb8], eax
add eax, ecx
mov dword [esi + 0xbc], eax
test ecx, ecx
je 0x4499a6
cmp dword [ebp + 0x24], 0
je 0x449970
mov edx, dword [esi + 0xb8]
xor edi, edi
sub edx, dword [esi + 0x28]
add edx, dword [esp + 0xc]
mov ecx, edx
adc edi, dword [esp + 0x18]
sub ecx, dword [esp + 0x40]
mov eax, edi
sbb eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
jne 0x449924
cmp ecx, 0x1000000
jb 0x449970
mov eax, dword [esi + 0xb4]
sub eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0x90]
sub ecx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x94]
sbb eax, 0
mov dword [esp + 0x44], edi
add ecx, edx
lea edx, [esp + 0x40]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0x24]
adc eax, edi
push edx
mov dword [esp + 0x50], eax
lea edx, [esp + 0x4c]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
test eax, eax
jne 0x449a9c
lea ecx, [esi + 0x98]
call fcn.0042a670
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x44999e
mov ecx, dword [esp + 0xc]
jmp 0x4496f0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x4499a6
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], 1
mov eax, dword [esi + 0xb8]
mov edx, dword [esi + 0x28]
sub eax, edx
je 0x4499cd
add dword [esp + 0xc], eax
push eax
mov eax, dword [ebp + 0x18]
adc edi, 0
mov ecx, dword [eax]
call fcn.00449110
test eax, eax
jne 0x449a9c
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov eax, dword [esp + 0x20]
cmovne eax, ecx
test eax, eax
jne 0x449a9c
cmp byte [esi + 0x2d8], al
je 0x449a70
cmp dword [esi + 0xd0], eax
jne 0x449a7b
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x449a09
cmp eax, 8
jne 0x449a7b
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x449a23
mov eax, dword [eax]
test eax, eax
je 0x449a23
mov ecx, dword [esp + 0xc]
cmp dword [eax], ecx
jne 0x449a7b
cmp dword [eax + 4], edi
jne 0x449a7b
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x449a70
mov esi, 0x60
mov edx, 0x90
mov edi, dword [eax + edx - 0x90]
test edi, edi
je 0x449a62
mov eax, dword [ebx + edx - 0x44]
sub eax, dword [ebx + edx - 0x10]
add eax, dword [ebx + edx]
mov ecx, dword [ebx + esi]
sub ecx, eax
mov eax, dword [ebx + esi + 4]
sbb eax, 0
cmp dword [edi], ecx
jne 0x449a7b
cmp dword [edi + 4], eax
jne 0x449a7b
mov eax, dword [ebp + 0x10]
add esi, 8
add edx, 4
cmp esi, 0x80
jb 0x449a34
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0x80070057
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20