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

Disassembly:
sub esp, 0x78
mov eax, dword [0x508578]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x7c]
push ebx
push ebp
push esi
mov esi, edx
mov ebp, dword [esp + 0x8c]
lea edx, [ecx + 0x6c]
mov dword [esp + 0x2c], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x30], edx
xor edx, edx
xor ebx, ebx
push edi
xor edi, edi
cmp eax, 3
sete dl
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx + 0x48]
mov dword [esp + 0x40], esi
mov byte [esp + 0x1b], bl
mov dword [esp + 0x24], edx
xor edx, edx
cmp eax, 4
sete dl
mov dword [esp + 0x38], edx
cmp ecx, dword [esi + 0x10]
je 0x449c03
lea eax, [edi + 6]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00493576
add esp, 0x78
ret
cmp eax, dword [esp + 0x94]
je 0x449c24
pop edi
pop esi
pop ebp
mov eax, 0x13
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00493576
add esp, 0x78
ret
test ebp, ebp
je 0x449c36
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov dword [esp + 0x20], eax
mov ebx, eax
mov edi, edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x74]
push ecx
push edx
call fcn.0043e770
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
lea ecx, [eax + edi + 0x3f]
mov eax, dword [esp + 0x88]
add esi, ebx
and esi, 0xffffffc0
lea eax, [eax + ebx + 0x3f]
sub ebx, esi
and eax, 0xffffffc0
add edx, edi
and edx, 0xffffffc0
and ecx, 0xffffffc0
mov dword [esp + 0x28], ebx
mov ebx, eax
mov dword [esp + 0x88], eax
sub eax, esi
sub edi, edx
mov dword [esp + 0x84], ecx
sub ecx, edx
shr ecx, 6
shr eax, 6
mov ebp, edx
mov dword [esp + 0x24], edi
add esp, 8
sar ebp, 6
sar ebx, 6
cmp dword [esp + 0x24], 0
mov edi, eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], edi
mov esi, ecx
je 0x449cd7
lea esi, [ecx + ecx*2]
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x2c]
add esi, 3
and esi, 0xfffffffc
cmp dword [esp + 0x38], 0
je 0x449ce1
lea edi, [edi + edi*2]
cmp ebp, 0x7fffffff
jg 0x449f48
cmp ebx, 0x7fffffff
jg 0x449f48
cmp ebp, 0x80000000
jl 0x449f48
cmp ebx, 0x80000000
jl 0x449f48
cmp ecx, 0x7fff
jg 0x449f30
cmp edi, 0x7fff
jg 0x449f30
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x9c]
test byte [ecx + 4], 1
je 0x449d61
mov edx, dword [eax + 0x58]
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.0043fac0
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x58], 0
mov ecx, eax
mov eax, dword [ecx + 0x9c]
add esp, 8
and dword [eax + 4], 0xfffffffe
mov ecx, dword [esp + 0x34]
mov eax, esi
imul eax, edi
lea edx, [esp + 0x28]
push edx
push eax
push ecx
call fcn.004418b0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x449f1d
mov eax, ecx
mov edx, dword [eax + 0x9c]
or dword [edx + 4], 1
mov dword [eax + 0x64], ebp
mov ebp, dword [esp + 0x1c]
mov dword [eax + 0x68], ebx
mov ebx, dword [esp + 0x20]
mov dword [eax + 0x48], 0x62697473
mov edx, 0x100
mov word [ecx + 0x5c], dx
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
mov byte [ecx + 0x5e], 2
mov dword [ecx + 0x50], edx
mov dword [ecx + 0x4c], edi
mov dword [ecx + 0x54], esi
test ebp, ebp
jne 0x449dd4
test ebx, ebx
je 0x449deb
push ebx
add eax, 0x6c
push ebp
push eax
call fcn.0043e800
mov eax, dword [esp + 0x20]
add esp, 0xc
mov byte [esp + 0x1b], 1
lea ecx, [eax + 0x4c]
add eax, 0x6c
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x34]
push ecx
mov dword [esp + 0x54], 1
call edx
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
jne 0x449ec9
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x24], eax
je 0x449e75
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x449e75
lea ebp, [eax - 1]
mov edi, edi
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x449e62
mov eax, dword [esp + 0x2c]
lea eax, [eax + ebp - 1]
movzx ecx, byte [edx + ebp]
mov byte [eax - 1], cl
mov byte [eax], cl
mov byte [eax + 1], cl
sub eax, 3
dec edx
jne 0x449e50
mov eax, dword [esp + 0x24]
dec eax
add ebp, esi
mov dword [esp + 0x24], eax
test eax, eax
jne 0x449e40
mov ebp, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
je 0x449eba
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + 0x58]
sub edi, ebx
imul edi, esi
add edi, ebp
test ebx, ebx
je 0x449eb6
mov edi, edi
push esi
push edi
push ebp
call fcn.004936a0
push esi
add ebp, esi
push edi
push ebp
call fcn.004936a0
push esi
add ebp, esi
push edi
push ebp
call fcn.004936a0
add esp, 0x24
add ebp, esi
add edi, esi
dec ebx
jne 0x449e90
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
xor eax, eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x28], eax
cmp byte [esp + 0x1b], 0
je 0x449eea
mov eax, dword [esp + 0x14]
neg ebx
push ebx
neg ebp
add eax, 0x6c
push ebp
push eax
call fcn.0043e800
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp byte [esp + 0x13], 0
je 0x449f1d
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x58]
mov edx, dword [esp + 0x34]
push ecx
push edx
call fcn.0043fac0
mov dword [esi + 0x58], 0
mov eax, esi
mov eax, dword [eax + 0x9c]
add esp, 8
and dword [eax + 4], 0xfffffffe
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00493576
add esp, 0x78
ret
pop edi
pop esi
pop ebp
mov eax, 0x62
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00493576
add esp, 0x78
ret
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 0x17
call fcn.00493576
add esp, 0x78
ret