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

Disassembly:
sub esp, 0x5c
mov eax, dword [0x4e1898]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
mov ebx, dword [0x4e5fbc]
push ebp
push esi
mov esi, ebx
push edi
test byte [esi + 8], 2
mov byte [esi + 0x95], 0
je 0x422222
test byte [esi + 0xc], 1
je 0x422222
movaps xmm0, xmmword [0x4da240]
lea edi, [esp + 0x44]
movups xmmword [esp + 0x44], xmm0
mov byte [esp + 0x17], 1
movaps xmm0, xmmword [0x4da250]
movups xmmword [esp + 0x54], xmm0
nop
mov ecx, dword [edi]
call fcn.0041d190
test al, al
je 0x422215
mov dword [esi + 0x4820], 3
add edi, 4
lea eax, [esp + 0x64]
cmp edi, eax
jne 0x422200
jmp 0x422227
mov byte [esp + 0x17], 0
mov al, byte [esi + 8]
movaps xmm0, xmmword [0x4da230]
and al, 1
mov byte [esp + 0x19], al
movups xmmword [esp + 0x28], xmm0
mov dword [esp + 0x38], 0x201
mov dword [esp + 0x3c], 0x203
mov dword [esp + 0x40], 0x204
je 0x422280
lea edi, [esp + 0x28]
nop word [eax + eax]
mov ecx, dword [edi]
call fcn.0041d190
test al, al
je 0x422275
mov dword [esi + 0x4820], 2
add edi, 4
lea eax, [esp + 0x44]
cmp edi, eax
jne 0x422260
mov ecx, dword [esi + 0x4834]
mov dword [esi + 0x480c], 0
test ecx, ecx
je 0x422333
mov edi, ebx
mov edx, dword [edi + 0x47f0]
test edx, edx
je 0x422333
cmp dword [edi + 0x47f4], ecx
je 0x4222cc
mov dword [esi + 0x480c], ecx
mov eax, dword [edi + 0x4838]
mov dword [edi + 0x4810], eax
mov dword [edi + 0x4814], 0
test byte [edi + 0x5b14], 8
je 0x4222f2
push dword [edx + 4]
push dword [edi + 0x4824]
push ecx
push str._nav__NavInitRequest:_ApplyResult:_NavID_0x_08X_in_Layer__d_Window___s__n
call fcn.00426ec0
mov ebx, dword [0x4e5fbc]
add esp, 0x10
mov edx, dword [edi + 0x4824]
lea eax, [edi + 0x483c]
mov ecx, dword [esi + 0x4834]
push eax
push dword [edi + 0x4838]
call fcn.00420fa0
add esp, 8
mov byte [edi + 0x4828], 1
cmp byte [edi + 0x482e], 0
je 0x422333
mov word [ebx + 0x4829], 1
mov byte [ebx + 0x482b], 1
cmp byte [esi + 0x485c], 0
mov word [esi + 0x482d], 0
mov dword [esi + 0x4834], 0
je 0x422354
call fcn.00423310
xor al, al
mov dword [esi + 0x48a0], 0
mov word [esi + 0x485c], 0
mov dword [esp + 0x20], eax
cmp byte [esi + 0x4829], al
je 0x4223a3
cmp byte [esi + 0x4828], al
je 0x4223a3
cmp byte [esi + 0x482a], al
jne 0x4223a3
cmp byte [esi + 0x482b], al
je 0x4223a3
cmp dword [esi + 0x47f0], 0
mov ecx, 1
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0x47f0]
mov byte [esi + 0x4829], 0
test ecx, ecx
je 0x4223dd
mov eax, ecx
cmp dword [eax + 0x300], eax
je 0x4223d3
test dword [eax + 0xc], 0x14000000
jne 0x4223d3
mov eax, dword [eax + 0x2f8]
test eax, eax
jne 0x4223b6
jmp 0x4223dd
cmp eax, ecx
je 0x4223dd
mov dword [eax + 0x310], ecx
mov bh, byte [esp + 0x17]
mov eax, dword [esi + 0x47f0]
mov bl, bh
test eax, eax
je 0x422409
cmp dword [eax + 0x310], 0
je 0x422409
cmp dword [esi + 0x4824], 0
jne 0x422409
mov dword [eax + 0x310], 0
call fcn.00424120
cmp byte [esp + 0x19], 0
jne 0x42241d
test bh, bh
je 0x42256a
mov eax, dword [esi + 0x47f0]
test eax, eax
je 0x42256a
test dword [eax + 0xc], 0x40000
jne 0x42256a
mov byte [esi + 0x97], 1
cmp dword [esi + 0x47f4], 0
mov byte [esp + 0x17], bl
je 0x422571
cmp byte [esi + 0x482a], 0
lea ebp, [esi + 0x482a]
mov byte [esp + 0x17], bl
jne 0x422571
lea edi, [esi + 0x495c]
mov byte [esp + 0x17], bl
mov al, 1
mov dword [esp + 0x1c], edi
mov byte [esi + 0x98], al
call fcn.00423740
cmp dword [esi + 0x47f4], 0
mov dword [esi + 0x4804], 0
mov dword [esi + 0x4800], 0
mov dword [esi + 0x47fc], 0
mov dword [esi + 0x4808], 0
je 0x42268f
cmp byte [esi + 0x482a], 0
lea ebx, [esi + 0x482a]
mov ebp, ebx
jne 0x42268f
cmp dword [edi], 0
jne 0x42268f
mov eax, dword [esi + 0x47f0]
test eax, eax
je 0x42268f
test dword [eax + 0xc], 0x40000
jne 0x42268f
mov al, byte [esp + 0x19]
mov edi, dword [0x4e5fbc]
test al, al
je 0x422510
cmp byte [edi + 0x2ea0], 0
je 0x422510
cmp byte [edi + 0x3f80], 0
je 0x422529
cmp byte [esp + 0x17], 0
je 0x422595
cmp byte [edi + 0x34c0], 0
je 0x422595
cmp byte [edi + 0x4418], 0
jne 0x422595
mov byte [esp + 0x1a], 1
test al, al
je 0x422547
push 0
xor edx, edx
mov ecx, 0x20c
call fcn.0041d240
add esp, 4
test al, al
jne 0x422563
cmp byte [esp + 0x17], 0
je 0x42259a
push 0
xor edx, edx
mov ecx, 0x26e
call fcn.0041d240
add esp, 4
test al, al
je 0x42259a
mov byte [esp + 0x18], 1
jmp 0x42259f
mov byte [esi + 0x97], 0
cmp dword [esi + 0x495c], 0
lea edi, [esi + 0x495c]
mov dword [esp + 0x1c], edi
lea ebp, [esi + 0x482a]
jne 0x422471
xor al, al
jmp 0x422477
mov byte [esp + 0x1a], 0
mov byte [esp + 0x18], 0
mov al, byte [esp + 0x19]
test al, al
je 0x4225b9
cmp byte [edi + 0x2eb0], 0
je 0x4225b9
cmp byte [edi + 0x3f8c], 0
je 0x4225d2
cmp byte [esp + 0x17], 0
je 0x422610
cmp byte [edi + 0x34b0], 0
je 0x422610
cmp byte [edi + 0x440c], 0
jne 0x422610
mov byte [esp + 0x1b], 1
test al, al
je 0x4225f0
push 0
xor edx, edx
mov ecx, 0x20d
call fcn.0041d240
add esp, 4
test al, al
jne 0x42260c
cmp byte [esp + 0x17], 0
je 0x422615
push 0
xor edx, edx
mov ecx, 0x26d
call fcn.0041d240
add esp, 4
test al, al
je 0x422615
mov cl, 1
jmp 0x422617
mov byte [esp + 0x1b], 0
xor cl, cl
mov eax, dword [esi + 0x3eac]
mov edx, dword [esi + 0x47f4]
mov ch, byte [esp + 0x18]
test eax, eax
jne 0x422641
test ch, ch
je 0x422645
mov dword [esi + 0x47fc], edx
mov dword [esi + 0x4808], 2
jmp 0x422645
cmp eax, edx
jne 0x42268f
test cl, cl
je 0x422659
mov dword [esi + 0x47fc], edx
mov dword [esi + 0x4808], 1
test eax, eax
je 0x422661
cmp eax, edx
jne 0x42268f
cmp byte [esp + 0x1a], 0
jne 0x42266f
cmp byte [esp + 0x1b], 0
je 0x422675
mov dword [esi + 0x4800], edx
test eax, eax
je 0x42267d
cmp eax, edx
jne 0x42268f
test ch, ch
jne 0x422687
mov ebp, ebx
test cl, cl
je 0x42268f
mov dword [esi + 0x4804], edx
mov ebp, ebx
mov eax, dword [esi + 0x47f0]
test eax, eax
je 0x4226a6
test dword [eax + 0xc], 0x40000
je 0x4226a6
mov byte [ebp], 1
mov eax, dword [esi + 0x4818]
test eax, eax
je 0x4226ce
mov dword [esi + 0x4804], eax
mov dword [esi + 0x4800], eax
mov dword [esi + 0x47fc], eax
mov eax, dword [esi + 0x481c]
mov dword [esi + 0x4808], eax
mov dword [esi + 0x4818], 0
call fcn.00422aa0
cmp dword [esi + 0x486c], 0xffffffff
mov edi, dword [0x4e5fbc]
jne 0x4227cd
mov ebx, dword [edi + 0x47f0]
test ebx, ebx
je 0x4227cd
cmp dword [edi + 0x495c], 0
jne 0x4227cd
test dword [ebx + 0xc], 0x40000
jne 0x4227cd
push 1
or edx, 0xffffffff
mov ecx, 0x200
call fcn.0041d240
add esp, 4
test al, al
je 0x4227cd
cmp byte [edi + 0xdd8], 0
jne 0x4227cd
cmp byte [edi + 0xdda], 0
jne 0x4227cd
test byte [edi + 8], 1
mov al, byte [edi + 0xdd9]
je 0x42277e
test al, al
je 0x422761
or edx, 0xffffffff
jmp 0x422792
cmp byte [edi + 0x482a], 1
jne 0x422777
cmp dword [edi + 0x3eac], 0
jne 0x422777
xor edx, edx
jmp 0x422792
mov edx, 1
jmp 0x422792
test al, al
je 0x422787
or edx, 0xffffffff
jmp 0x422792
xor edx, edx
cmp dword [edi + 0x3eac], edx
setne dl
mov dword [edi + 0x489c], edx
mov ecx, 0x21
cmp byte [ebx + 0xb0], 0
mov eax, 3
cmovne eax, ecx
sar edx, 0x1f
push eax
push 0x1400
add edx, 3
or ecx, 0xffffffff
call fcn.00421a90
add esp, 8
mov dword [edi + 0x48a0], 0xffffffff
cmp byte [edi + 0x485d], 0
jne 0x4227e3
cmp byte [edi + 0x482d], 0
jne 0x4227e3
xor al, al
jmp 0x4227e5
mov al, 1
mov byte [edi + 0x482c], al
mov ecx, dword [esi + 0x47f0]
mov byte [esi + 0x4828], 0
test ecx, ecx
je 0x422a00
test dword [ecx + 0xc], 0x40000
jne 0x422a00
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x422a00
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x3bd0]
mov eax, dword [ecx + 0x2f8]
mulss xmm0, dword [ecx + 0x25c]
test eax, eax
je 0x42283e
mulss xmm0, dword [eax + 0x25c]
cmp word [ecx + 0x14c], 0
xorps xmm4, xmm4
mulss xmm0, dword [0x4da124]
mov edx, dword [esi + 0x486c]
movss xmm2, dword [0x4da040]
mulss xmm0, dword [esi + 0x18]
addss xmm0, dword [0x4d9ffc]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
jne 0x422919
cmp byte [ecx + 0x152], 0
je 0x422919
cmp edx, 0xffffffff
je 0x422919
movss xmm1, dword [0x4da198]
test edx, edx
je 0x4228a9
cmp edx, 1
jne 0x4228dc
movaps xmm0, xmm2
jmp 0x4228ac
movaps xmm0, xmm1
mulss xmm0, xmm3
mov dword [ecx + 0x90], 0
mov dword [ecx + 0x98], 0
addss xmm0, dword [ecx + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x88], xmm0
cmp edx, 2
je 0x4228e9
cmp edx, 3
jne 0x422919
movaps xmm1, xmm2
mulss xmm1, xmm3
mov dword [ecx + 0x94], 0
mov dword [ecx + 0x9c], 0
addss xmm1, dword [ecx + 0x7c]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x8c], xmm0
mov dl, byte [esp + 0x17]
test dl, dl
je 0x422a04
cmp byte [edi + 0x3510], 0
movss xmm1, dword [edi + 0x35ac]
movss xmm0, dword [edi + 0x358c]
subss xmm1, dword [edi + 0x359c]
subss xmm0, dword [edi + 0x357c]
je 0x422957
cmp byte [edi + 0x4454], 0
je 0x422973
cmp byte [edi + 0x3520], 0
je 0x42297b
cmp byte [edi + 0x4460], 0
jne 0x42297b
movss xmm2, dword [0x4da0f4]
jmp 0x42297b
movss xmm2, dword [0x4d9fc4]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x4229c1
cmp byte [ecx + 0xa8], 0
je 0x4229c1
mulss xmm0, xmm3
mov dword [ecx + 0x90], 0
mov dword [ecx + 0x98], 0
mulss xmm0, xmm2
addss xmm0, dword [ecx + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x88], xmm0
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x422a04
mulss xmm1, xmm3
mov dword [ecx + 0x94], 0
mov dword [ecx + 0x9c], 0
mulss xmm1, xmm2
addss xmm1, dword [ecx + 0x7c]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x8c], xmm0
jmp 0x422a04
mov dl, byte [esp + 0x17]
cmp byte [esp + 0x19], 0
jne 0x422a1b
test dl, dl
jne 0x422a1b
mov byte [ebp], 1
mov byte [esi + 0x482b], dl
jmp 0x422a67
cmp byte [esp + 0x20], 0
je 0x422a67
test byte [esi + 8], 4
je 0x422a67
test byte [esi + 0xc], 4
je 0x422a67
lea ecx, [esp + 0x20]
call fcn.00421f00
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [esi + 0x36a4], xmm0
movss dword [esi + 0x36a8], xmm1
movss dword [esi + 0xdbc], xmm0
movss dword [esi + 0xdc0], xmm1
mov byte [esi + 0x95], 1
mov ecx, dword [esp + 0x64]
pop edi
mov dword [esi + 0x4898], 0
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004672b4
add esp, 0x5c
ret