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

Disassembly:
sub esp, 0x44
mov dword [esp + 0x10], 0
push ebx
push esi
mov esi, dword [esp + 0x50]
push edi
push ebp
mov eax, dword [esi]
and eax, 0xfffffdff
cmp dword [esp + 0x68], 0
mov dword [esp + 0x10], eax
je 0x4498ce
lea eax, [esp + 0x64]
lea ecx, [esp + 0x60]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [edx]
push ecx
push edx
call dword [eax]
add esp, 0xc
test eax, eax
jne 0x449d1f
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push ecx
lea ecx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x78]
push eax
push ecx
push edx
call fcn.00449d30
add esp, 0x18
test eax, eax
je 0x4498b0
lea eax, [esp + 0x64]
lea ecx, [esp + 0x60]
mov edx, dword [esp + 0x68]
push eax
push ecx
push edx
call fcn.0044fbe0
add esp, 0xc
test eax, eax
jne 0x449d1f
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x70]
cmp dword [edi + eax*4], 0
je 0x4498d2
test byte [esp + 0x11], 0x48
jne 0x4498d2
mov dword [esp + 0x68], 0
jmp 0x4498d2
mov edi, dword [esp + 0x70]
mov eax, dword [esi + 0xc]
cmp dword [edi + eax*4], 0x46bee0
jne 0x4498f2
mov eax, dword [esp + 0x6c]
pop ebp
pop edi
pop esi
pop ebx
mov dword [eax], 0
xor eax, eax
add esp, 0x44
ret
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push ecx
lea ecx, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x78]
push eax
push ecx
push edx
call fcn.00449d30
add esp, 0x18
test eax, eax
je 0x449967
cmp eax, 0x800
jne 0x44995a
test byte [esp + 0x11], 8
je 0x44995a
lea eax, [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x78]
push eax
push ecx
push edi
push esi
push edx
call fcn.00449f30
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
mov eax, 0x801
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x44997e
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x20], eax
jmp 0x449986
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x10]
and eax, 0x1ff
cmp eax, 0x102
je 0x449c73
mov eax, dword [esp + 0x10]
and eax, 0xff
cmp eax, dword [esp + 0x24]
je 0x449a1f
mov eax, dword [esp + 0x10]
and eax, 0x4420
cmp eax, 0x4420
jne 0x4499f8
lea edx, [esi + 0x10]
test byte [edx], 0x20
jne 0x4499f8
mov eax, dword [esp + 0x10]
and eax, 0xdf
cmp eax, dword [esp + 0x24]
jne 0x4499f8
lea eax, [esp + 0x30]
push edi
mov ebx, dword [esp + 0x60]
push eax
push 0
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push ebx
push edx
call fcn.00449820
add esp, 0x1c
test eax, eax
je 0x449a1f
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
test byte [esi + 1], 2
je 0x449a12
mov eax, dword [esp + 0x6c]
pop ebp
pop edi
pop esi
pop ebx
mov dword [eax], 0
xor eax, eax
add esp, 0x44
ret
mov eax, 0x801
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
test byte [esp + 0x24], 0x20
je 0x449ca4
lea eax, [esp + 0x14]
push esi
push eax
call fcn.0044a300
add esp, 8
mov eax, 1
cmp dword [esp + 0x14], eax
jbe 0x449a67
lea ecx, [esi + 0x10]
cmp dword [ecx], 0x103
je 0x449a57
mov edx, dword [ecx + 0xc]
cmp dword [edi + edx*4], 0
jne 0x449a61
add ecx, 0x10
inc eax
cmp dword [esp + 0x14], eax
ja 0x449a46
cmp dword [esp + 0x14], eax
ja 0x449a98
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jne 0x449ca4
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
push eax
push ecx
push edx
call fcn.0044a730
add esp, 0xc
test eax, eax
jne 0x449d1f
jmp 0x449c96
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jne 0x449aad
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
test byte [esp + 0x10], 0xc0
je 0x449ac5
test byte [esp + 0x11], 0x10
jne 0x449ac5
mov dword [esp + 0x28], 1
jmp 0x449acd
mov dword [esp + 0x28], 0
cmp dword [esp + 0x68], 0
mov ebp, 0
je 0x449ae8
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x2c]
add ebp, 2
mov dword [esp + 0x18], eax
mov ebx, 1
cmp dword [esp + 0x28], 0
jne 0x449bd3
test byte [esp + 0x11], 4
jne 0x449b0d
mov eax, ebx
shl eax, 4
cmp dword [eax + esi], 0x103
je 0x449b33
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jne 0x449bc9
mov eax, dword [esp + 0x18]
add eax, ebp
cmp byte [eax], 0
jne 0x449bd3
cmp byte [eax + 1], 0
jne 0x449bd3
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
jne 0x449c4f
cmp dword [esp + 0x68], 0
je 0x449b4f
mov dword [esp + 0x20], 2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
add ecx, ebp
mov dword [esp + 0x1c], ebp
mov dword [eax], ecx
cmp dword [esp + 0x28], 0
jne 0x449ca4
test byte [esp + 0x11], 4
jne 0x449ca4
mov eax, ebx
shl eax, 4
cmp dword [eax + esi], 0x103
je 0x449ca4
mov eax, ebx
shl eax, 4
add eax, esi
test byte [eax + 1], 2
jne 0x449ba4
mov ecx, dword [eax + 0xc]
cmp dword [edi + ecx*4], 0x46bee0
jne 0x449c66
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0044a300
add ebx, dword [esp + 0x1c]
add esp, 8
mov eax, ebx
shl eax, 4
cmp dword [eax + esi], 0x103
jne 0x449b87
jmp 0x449ca4
cmp dword [esp + 0x1c], ebp
jbe 0x449b33
mov eax, ebx
push edi
shl eax, 4
lea ecx, [esp + 0x34]
add eax, esi
push ecx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
push edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
sub eax, ebp
push eax
mov eax, dword [esp + 0x28]
add eax, ebp
push eax
push ecx
push edx
call fcn.00449820
add esp, 0x1c
test eax, eax
jne 0x449d1f
cmp dword [esp + 0x68], 0
je 0x449c1a
xor ebp, ebp
add ebp, dword [esp + 0x30]
cmp dword [esp + 0x28], 0
jne 0x449b33
test byte [esp + 0x11], 4
jne 0x449aed
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.0044a300
add ebx, dword [esp + 0x1c]
add esp, 8
jmp 0x449aed
cmp dword [esp + 0x1c], ebp
je 0x449b5f
mov eax, 0x801
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
mov eax, 0x801
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
test ecx, ecx
jne 0x449ca4
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
push eax
push ecx
push edx
call fcn.0044a730
add esp, 0xc
test eax, eax
jne 0x449d1f
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov edx, dword [edi + eax*4]
test edx, edx
je 0x449d1d
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x449d08
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x6c]
inc eax
mov ebx, dword [ebp]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
push edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
push edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], esi
call ecx
add esp, 8
test eax, eax
je 0x449d1d
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x60]
mov dword [edx], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [esi + 0xc]
mov ecx, dword [edx]
mov edx, dword [edi + eax*4]
mov dword [edx + 4], ecx
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x44
ret