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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov ebx, dword [esp + 0x78]
mov esi, ecx
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x34], eax
imul eax, ebx
mov dword [esp + 0x18], ecx
test ax, ax
je 0x44191c
mov ecx, dword [esp + 0x7c]
mov eax, edx
mov edi, edx
lea edx, [esp + 0x58]
shr eax, 0x10
mov dword [edx], edi
mov dword [edx + 4], ebx
mov dword [esp + 8], eax
lea eax, [esi + 0x18]
mov dword [esp], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], ecx
push eax
call fcn.00440f1e
add esp, 4
movzx eax, byte [esi + 0x25]
mov ecx, dword [eax*4 + 0x486b54]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax*4 + 0x486b64]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax*4 + 0x486b74]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax*4 + 0x486b84]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax*4 + 0x486b94]
mov eax, dword [eax*4 + 0x486ba4]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi + 0x26]
mov dword [esp + 4], eax
mov dword [esp + 0x20], ecx
and ecx, 8
mov dword [esp + 0x50], ecx
je 0x44146e
mov ecx, dword [esp + 8]
mov edx, 0xffff
mov eax, ecx
add ax, word [esp + 0x34]
cmovae edx, eax
cmp dx, cx
mov dword [esp + 0xc], edx
jbe 0x44146e
mov eax, dword [esp + 0x18]
mov ebx, 0xff
movzx esi, word [eax + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
movzx eax, word [eax + 0x16]
mov word [esp + 0x30], si
mov dword [esp + 0x24], ecx
and ecx, ebx
not eax
and ebx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 4]
mov ebp, dword [esp + 8]
lea edi, [eax + 3]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp]
push ebp
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 4]
mov esi, eax
mov dword [eax + 8], 0
mov ecx, eax
push edi
call fcn.00420d2c
add esp, 4
cmp dword [esp + 0x28], 0x13
je 0x441449
mov eax, dword [esp + 0x24]
mov dword [esi + 0xc], eax
cmp ebx, 0x13
je 0x441455
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x10], eax
movzx eax, word [esi + 0x14]
inc ebp
or ax, word [esp + 0x30]
and eax, dword [esp + 0x2c]
cmp bp, word [esp + 0xc]
mov word [esi + 0x14], ax
jb 0x441413
test byte [esp + 0x20], 1
je 0x441531
mov ecx, dword [esp]
mov edx, 0xffff
mov eax, ecx
add ax, word [esp + 0x38]
cmovae edx, eax
cmp dx, cx
mov dword [esp + 0xc], edx
jbe 0x441531
mov eax, dword [esp + 0x18]
mov ebp, 0xff
movzx esi, word [eax + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
movzx eax, word [eax + 0x16]
mov word [esp + 0x30], si
mov dword [esp + 0x24], ecx
and ecx, ebp
not eax
and ebp, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp]
lea edi, [eax + 3]
mov ecx, dword [esp + 0x14]
mov edx, esi
push dword [esp + 8]
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x10]
mov ebx, eax
mov dword [eax + 8], 0
mov ecx, eax
push edi
call fcn.00420d2c
add esp, 4
cmp dword [esp + 0x28], 0x13
je 0x44150c
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xc], eax
cmp ebp, 0x13
je 0x441518
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x10], eax
movzx eax, word [ebx + 0x14]
inc esi
or ax, word [esp + 0x30]
and eax, dword [esp + 0x2c]
cmp si, word [esp + 0xc]
mov word [ebx + 0x14], ax
jb 0x4414d4
movzx eax, word [esp + 0x20]
and eax, 2
mov dword [esp + 0x40], eax
je 0x441611
mov eax, dword [esp]
mov ecx, eax
mov eax, 0xffff
add cx, word [esp + 0x38]
cmovb ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 8]
mov edi, ecx
add di, word [esp + 0x34]
cmovb edi, eax
cmp di, cx
jbe 0x441611
dec dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movzx esi, word [eax + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
movzx eax, word [eax + 0x16]
mov word [esp + 0x30], si
mov esi, 0xff
mov dword [esp + 0x1c], ecx
not eax
and ecx, esi
and esi, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 4]
mov ebp, dword [esp + 8]
lea esi, [eax + 3]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
push ebp
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 4]
mov ebx, eax
mov dword [eax + 8], 0
mov ecx, eax
push esi
call fcn.00420d2c
add esp, 4
cmp dword [esp + 0x24], 0x13
je 0x4415ec
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0xc], eax
cmp dword [esp + 0x28], 0x13
je 0x4415fa
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x10], eax
movzx eax, word [ebx + 0x14]
inc ebp
or ax, word [esp + 0x30]
and eax, dword [esp + 0x2c]
cmp bp, di
mov word [ebx + 0x14], ax
jb 0x4415b5
test byte [esp + 0x20], 4
je 0x4416ea
mov eax, dword [esp + 8]
mov ecx, eax
mov eax, 0xffff
add cx, word [esp + 0x34]
cmovb ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp]
mov edi, ecx
add di, word [esp + 0x38]
cmovb edi, eax
cmp di, cx
jbe 0x4416ea
dec dword [esp + 4]
mov eax, dword [esp + 0x18]
movzx esi, word [eax + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
movzx eax, word [eax + 0x16]
mov word [esp + 0xc], si
mov esi, 0xff
mov dword [esp + 0x24], ecx
not eax
and ecx, esi
and esi, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp]
lea ebp, [eax + 3]
mov ecx, dword [esp + 0x14]
mov edx, esi
push dword [esp + 4]
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x10]
mov ebx, eax
mov dword [eax + 8], 0
mov ecx, eax
push ebp
call fcn.00420d2c
add esp, 4
cmp dword [esp + 0x28], 0x13
je 0x4416c5
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xc], eax
cmp dword [esp + 0x2c], 0x13
je 0x4416d3
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x10], eax
movzx eax, word [ebx + 0x14]
inc esi
or ax, word [esp + 0xc]
and eax, dword [esp + 0x30]
cmp si, di
mov word [ebx + 0x14], ax
jb 0x44168d
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
not al
test al, 6
jne 0x441769
mov edx, dword [esp]
add dx, bx
mov eax, 0xffff
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
cmovb edx, eax
dec edx
add si, word [esp + 0x34]
cmovb esi, eax
dec esi
push esi
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x3c]
mov esi, eax
mov dword [eax + 8], 0
mov ecx, esi
lea eax, [edx + 3]
push eax
call fcn.00420d2c
add esp, 4
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
cmp al, 0x13
je 0x44174d
mov dword [esi + 0xc], eax
movzx edx, word [edi + 0x14]
movzx eax, word [edi + 0x16]
cmp cl, 0x13
je 0x44175d
mov dword [esi + 0x10], ecx
or dx, word [esi + 0x14]
not eax
and eax, edx
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x20]
not al
test al, 3
jne 0x4417d6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp]
add ax, bx
mov edx, 0xffff
cmovae edx, eax
dec edx
push dword [esp + 8]
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x44]
mov esi, eax
mov dword [eax + 8], 0
mov ecx, esi
lea eax, [edx + 3]
push eax
call fcn.00420d2c
add esp, 4
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
cmp al, 0x13
je 0x4417ba
mov dword [esi + 0xc], eax
movzx edx, word [edi + 0x14]
movzx eax, word [edi + 0x16]
cmp cl, 0x13
je 0x4417ca
mov dword [esi + 0x10], ecx
or dx, word [esi + 0x14]
not eax
and eax, edx
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x20]
not al
test al, 0xc
jne 0x441846
mov ecx, dword [esp + 0x34]
mov eax, 0xffff
mov edx, dword [esp]
add cx, word [esp + 8]
cmovae eax, ecx
mov ecx, dword [esp + 0x14]
dec eax
push eax
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x48]
mov esi, eax
mov dword [eax + 8], 0
mov ecx, esi
lea eax, [edx + 3]
push eax
call fcn.00420d2c
add esp, 4
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
cmp al, 0x13
je 0x44182a
mov dword [esi + 0xc], eax
movzx edx, word [edi + 0x14]
movzx eax, word [edi + 0x16]
cmp cl, 0x13
je 0x44183a
mov dword [esi + 0x10], ecx
or dx, word [esi + 0x14]
not eax
and eax, edx
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x20]
not al
test al, 9
jne 0x4418a7
mov ecx, dword [esp + 0x14]
mov edx, dword [esp]
push dword [esp + 8]
call fcn.00440ce0
add esp, 4
mov edx, dword [esp + 0x4c]
mov esi, eax
mov dword [eax + 8], 0
mov ecx, esi
lea eax, [edx + 3]
push eax
call fcn.00420d2c
add esp, 4
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
cmp al, 0x13
je 0x44188b
mov dword [esi + 0xc], eax
movzx edx, word [edi + 0x14]
movzx eax, word [edi + 0x16]
cmp cl, 0x13
je 0x44189b
mov dword [esi + 0x10], ecx
or dx, word [esi + 0x14]
not eax
and eax, edx
mov word [esi + 0x14], ax
cmp dword [edi], 0x80000000
je 0x441928
movzx eax, word [esp + 0x50]
movzx ecx, word [esp + 0x40]
mov esi, ebx
xor edi, edi
shr eax, 3
shr ecx, 1
sub si, ax
mov dword [esp + 4], ecx
mov edx, eax
cmovb esi, edi
mov ebp, esi
sub bp, cx
mov ecx, dword [esp + 0x18]
cmovb ebp, edi
movzx eax, byte [ecx + 0x24]
cmp eax, 2
je 0x441930
cmp eax, 1
jne 0x44196e
mov edi, dword [ecx + 8]
mov dword [esp + 0x10], esi
mov esi, ebx
mov ebx, dword [ecx + 4]
lea eax, [edi + edi*2]
mov ecx, ebx
lea edx, [ebx + eax*8]
call fcn.0043b908
xor ecx, ecx
sub si, ax
cmovb esi, ecx
mov ecx, dword [esp + 4]
movzx eax, si
mov esi, dword [esp + 0x10]
shr eax, 1
jmp 0x44197a
cmp dword [esi], 0x80000000
jne 0x441a06
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ecx + 8]
mov dword [esp + 0x10], esi
mov esi, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0xc], ebp
lea eax, [edi + edi*2]
mov ecx, ebx
lea edx, [ebx + eax*8]
call fcn.0043b908
mov ecx, dword [esp + 4]
sub si, ax
mov eax, 0
mov ebp, dword [esp + 0xc]
cmovb esi, eax
sub si, cx
cmovb esi, eax
mov eax, esi
mov esi, dword [esp + 0x10]
jmp 0x44197a
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ecx, dword [esp + 4]
mov eax, edx
test edi, edi
je 0x441a06
cmp si, cx
jbe 0x441a06
add eax, dword [esp]
add ebx, 0xc
mov edx, eax
lea eax, [edi + edi*2]
lea edi, [eax*8 - 0x18]
mov eax, dword [ebx - 8]
mov dword [esp + 0x10], edx
mov ecx, dword [ebx + 8]
movzx esi, bp
mov dword [esp + 4], eax
mov eax, dword [ebx - 4]
mov dword [esp + 0x60], ecx
movsd xmm0, qword [ebx]
mov dword [esp], eax
lea eax, [esp + 0x58]
mov ecx, dword [esp + 0x14]
movsd qword [esp + 0x58], xmm0
push eax
push esi
push dword [esp + 8]
push dword [esp + 0x10]
push dword [esp + 0x18]
call fcn.00440d14
mov edx, ebp
add esp, 0x14
mov ecx, eax
mov ebp, 0
sub cx, word [esp + 0x10]
cmovb ecx, ebp
sub si, cx
cmovb esi, ebp
test edi, edi
je 0x441a06
add ebx, 0x18
add edi, 0xffffffe8
cmp dx, cx
mov edx, eax
mov ebp, esi
ja 0x441999
mov ecx, dword [esp + 0x18]
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.004408bc