Function at 0x10055af0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x18
mov eax, dword [0x101383dc]
xor eax, esp
mov dword [esp + 0x14], eax
push esi
push edi
call fcn.10054420
call fcn.10053540
call fcn.10053a70
call fcn.10054000
lea eax, [esp + 8]
push eax
call dword [0x10188290]
movss xmm7, dword [0x1012a56c]
add esp, 4
cmp dword [0x101831dc], 0
xorps xmm5, xmm5
movss xmm4, dword [0x1012a3c4]
jne 0x10055b58
movss xmm2, dword [0x101da124]
mov byte [0x10189f84], 0
jmp 0x10055cd3
cmp byte [0x10189f84], 0
movss xmm3, dword [0x101831e8]
mov ecx, dword [0x10188420]
jne 0x10055b92
comiss xmm3, xmm5
jbe 0x10055b85
movss xmm0, dword [ecx + 0x9c]
comiss xmm0, dword [0x1012a808]
ja 0x10055b92
movss xmm2, dword [0x101da124]
jmp 0x10055cd3
movss xmm0, dword [0x101da128]
comiss xmm0, xmm5
ja 0x10055b85
movss xmm6, dword [ecx + 0x9c]
comiss xmm5, xmm6
ja 0x10055b85
movss xmm2, dword [0x101da124]
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jnp 0x10055cd3
movss xmm0, dword [0x101da13c]
comiss xmm0, dword [0x1012a6c0]
ja 0x10055cd3
mov eax, dword [ecx + 0x4f4f0]
movss xmm1, dword [eax]
mulss xmm1, dword [0x10186aac]
addss xmm1, xmm6
mulss xmm1, dword [0x10186aac]
mulss xmm1, xmm7
movss xmm7, dword [0x101da130]
movaps xmm0, xmm7
subss xmm0, xmm1
comiss xmm0, xmm5
ja 0x10055ccb
cmp byte [0x10189f84], 0
je 0x10055c21
movss xmm3, dword [0x101831e4]
ucomiss xmm6, xmm5
lahf
test ah, 0x44
jp 0x10055c2d
movaps xmm6, xmm4
ucomiss xmm7, xmm5
lahf
test ah, 0x44
jp 0x10055c39
movaps xmm7, xmm4
movss xmm1, dword [0x101da13c]
movaps xmm4, xmm1
mov ecx, dword [0x10186aa8]
movaps xmm0, xmm1
mov eax, dword [0x101db0a0]
divss xmm4, xmm2
divss xmm0, xmm6
divss xmm1, xmm7
divss xmm4, xmm0
mulss xmm4, xmm1
movsd xmm1, qword [ecx]
sub eax, 0
je 0x10055c96
sub eax, 1
jne 0x10055cb7
subss xmm3, xmm4
mov dword [0x101db0a0], eax
mulss xmm3, dword [0x10186aac]
divss xmm3, dword [0x1012a5f0]
cvtps2pd xmm0, xmm3
addsd xmm1, xmm0
jmp 0x10055cb7
mulss xmm4, dword [0x10186aac]
mov dword [0x101db0a0], 1
divss xmm4, dword [0x1012a5f0]
cvtps2pd xmm0, xmm4
subsd xmm1, xmm0
movss xmm4, dword [0x1012a3c4]
movsd qword [ecx], xmm1
movss xmm2, dword [0x101da124]
movss xmm7, dword [0x1012a56c]
cmp byte [0x101da118], 0
xorps xmm0, xmm0
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
jne 0x10055ebe
cmp dword [0x101da0fc], 3
je 0x10055ebe
mov ecx, dword [0x10183220]
test ecx, ecx
je 0x10055d0d
cmp byte [0x10189f91], 0
je 0x10055ebe
movss xmm1, dword [0x10183228]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10055d26
movss xmm0, dword [0x1012a3a4]
ucomiss xmm1, dword [0x1012a534]
lahf
test ah, 0x44
jp 0x10055d3b
movss xmm0, dword [0x1012a3a8]
ucomiss xmm1, xmm7
lahf
test ah, 0x44
jp 0x10055d4c
movss xmm0, dword [0x1012a3ac]
ucomiss xmm1, dword [0x1012a5b0]
lahf
test ah, 0x44
jp 0x10055d61
movss xmm0, dword [0x1012a3b8]
ucomiss xmm1, dword [0x1012a5c4]
lahf
test ah, 0x44
jp 0x10055d76
movss xmm0, dword [0x1012a3bc]
cmp byte [0x10183225], 0
je 0x10055ebe
test ecx, ecx
je 0x10055ebe
movsd xmm1, qword [0x1012a500]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movsd xmm0, qword [0x10186c58]
ucomisd xmm0, xmm1
movsd qword [esp + 8], xmm1
lahf
test ah, 0x44
jnp 0x10055e19
push 0x1018db28
push 0x40
push 8
push dword [0x10189758]
call edi
movsd xmm0, qword [esp + 8]
mulsd xmm0, qword [0x1012a5b8]
mov eax, dword [0x10189758]
push 0x1018db28
movsd qword [eax], xmm0
push dword [0x1018db28]
mov esi, dword [0x10189758]
push 8
push esi
call edi
push 8
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movsd xmm0, qword [esp + 8]
xorps xmm5, xmm5
movss xmm2, dword [0x101da124]
movsd qword [0x10186c58], xmm0
cmp byte [0x10183226], 0
je 0x10055ebe
movss xmm0, dword [0x1012a73c]
comiss xmm2, xmm0
jbe 0x10055e48
mov eax, dword [0x1018d7c4]
mov dword [eax + 0x10], 0xc47a0000
mov dword [eax + 0x14], 0xc47a0000
jmp 0x10055ebe
comiss xmm0, xmm2
jb 0x10055e62
mov eax, dword [0x1018d7c4]
mov dword [eax + 0x10], 0xc2c80000
mov dword [eax + 0x14], 0xc2c80000
jmp 0x10055ebe
movss xmm0, dword [0x1012a708]
comiss xmm0, xmm2
jb 0x10055e84
mov eax, dword [0x1018d7c4]
mov dword [eax + 0x10], 0xc1200000
mov dword [eax + 0x14], 0xc1200000
jmp 0x10055ebe
movss xmm0, dword [0x1012a694]
comiss xmm0, xmm2
jb 0x10055ea6
mov eax, dword [0x1018d7c4]
mov dword [eax + 0x10], 0xbf800000
mov dword [eax + 0x14], 0xbf800000
jmp 0x10055ebe
comiss xmm5, xmm2
jb 0x10055ebe
mov eax, dword [0x1018d7c4]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov edx, dword [0x10183284]
cvttss2si ecx, dword [0x101da13c]
mov eax, dword [0x1018d7c4]
add edx, 3
cmp byte [0x10183278], 0
je 0x10055f20
cmp dword [0x1018327c], 0
je 0x10055eef
cmp byte [0x10189f99], 0
je 0x10055f20
cmp ecx, edx
jg 0x10055f20
test ecx, ecx
je 0x10055f20
cmp byte [0x10189f7f], 0
jne 0x10055f20
cmp byte [0x10189f83], 0
jne 0x10055f20
cmp byte [0x10189f84], 0
jne 0x10055f20
cmp byte [0x101da11c], 0
jne 0x10055f20
or word [eax + 0x1e], 2
cmp byte [0x1018325a], 0
jne 0x10055f30
call fcn.100a7110
jmp 0x10055f70
mov eax, dword [0x10183264]
cmp eax, 1
jne 0x10055f5a
cmp byte [0x10189f85], 0
je 0x10055f70
movss xmm1, dword [0x10183268]
mov ecx, 0x1018d72c
call fcn.100a6fd0
mov eax, dword [0x10183264]
test eax, eax
jne 0x10055f70
movss xmm1, dword [0x10183268]
mov ecx, 0x1018d5cc
call fcn.100a6fd0
push str.hw.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp byte [0x1018326c], 0
mov esi, eax
je 0x100560ed
mov ecx, dword [0x10187a04]
mov eax, dword fs:[0x2c]
cmp dword [0x10183274], 0
mov dword [esi + 0xab7c30], 0
mov ecx, dword [eax + ecx*4]
jne 0x10056059
mov eax, dword [0x101db08c]
cmp eax, dword [ecx + 4]
jle 0x10055ff5
push 0x101db08c
call fcn.100c301b
add esp, 4
cmp dword [0x101db08c], 0xffffffff
jne 0x10055ff5
mov eax, dword [0x10188204]
push 0x101db08c
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101db0a8], xmm0
call fcn.100c2fd1
add esp, 4
movss xmm0, dword [0x10183270]
movsd xmm1, qword [0x1012a5b8]
cvtps2pd xmm0, xmm0
mov eax, dword [0x10188204]
movsd xmm2, qword [eax + 0x2af98]
divsd xmm1, xmm0
subsd xmm2, qword [0x101db0a8]
divsd xmm1, qword [0x1012a5b8]
andps xmm2, xmmword [0x1012c1a0]
comisd xmm2, xmm1
jb 0x100560ed
mov dword [esi + 0xab7c30], 1
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101db0a8], xmm0
jmp 0x100560ed
mov eax, dword [0x101db09c]
cmp eax, dword [ecx + 4]
jle 0x1005609e
push 0x101db09c
call fcn.100c301b
add esp, 4
cmp dword [0x101db09c], 0xffffffff
jne 0x1005609e
mov eax, dword [0x10188204]
push 0x101db09c
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101db078], xmm0
call fcn.100c2fd1
add esp, 4
movss xmm0, dword [0x10183270]
cvtps2pd xmm0, xmm0
mov eax, dword [0x10188204]
movsd xmm1, qword [eax + 0x2af98]
divsd xmm0, qword [0x1012a5b8]
subsd xmm1, qword [0x101db078]
andps xmm1, xmmword [0x1012c1a0]
comisd xmm1, xmm0
jb 0x100560ed
mov dword [esi + 0xab7c30], 1
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101db078], xmm0
call fcn.100555f0
call fcn.10055130
lea eax, [esp + 8]
push eax
call dword [0x10188290]
add esp, 4
mov cl, 1
cmp byte [0x101832e5], 0
mov al, cl
je 0x10056124
cmp dword [0x101832e8], 0
je 0x10056126
cmp byte [0x10189f9e], 0
jne 0x10056126
xor cl, cl
cmp byte [0x101832dc], 0
je 0x10056141
cmp dword [0x101832e0], 0
je 0x10056143
cmp byte [0x10189f9d], 0
jne 0x10056143
xor al, al
cmp byte [0x101da11c], 0
je 0x10056215
test cl, cl
je 0x10056165
mov byte [0x10189f9d], 0
mov dword [esp + 8], 0xc2b20000
jmp 0x1005617c
test al, al
je 0x10056233
mov byte [0x10189f9e], 0
mov dword [esp + 8], 0x42b20000
lea eax, [esp + 8]
mov word [0x10189f96], 0
push eax
mov byte [0x101889c0], 1
call dword [0x10188294]
movsd xmm0, qword [0x10186c58]
add esp, 4
ucomisd xmm0, qword [0x1012a598]
lahf
test ah, 0x44
jnp 0x10056208
push 0x1018db28
push 0x40
push 8
push dword [0x10189758]
call edi
mov eax, dword [0x10189758]
movsd xmm0, qword [0x1012a5e0]
push 0x1018db28
movsd qword [eax], xmm0
push dword [0x1018db28]
mov esi, dword [0x10189758]
push 8
push esi
call edi
push 8
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movsd xmm0, qword [0x1012a598]
movsd qword [0x10186c58], xmm0
push str.forward
call dword [0x10188258]
jmp 0x10056230
cmp byte [0x101889c0], 0
je 0x10056233
push str._forward
call dword [0x10188258]
mov byte [0x101889c0], 0
add esp, 4
mov eax, dword [0x1018d7c4]
mov dword [0x101889c4], eax
pop edi
pop esi
movzx ecx, byte [eax + 0x1e]
shr cl, 3
and cl, 1
mov byte [0x101397e4], cl
movzx ecx, word [eax + 0x1e]
shr cx, 9
and cl, 1
mov byte [0x101397e5], cl
movzx ecx, word [eax + 0x1e]
shr cx, 0xa
and cl, 1
mov byte [0x101397e7], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 4
and cl, 1
mov byte [0x101397e6], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 2
and cl, 1
mov byte [0x101397e8], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 1
and cl, 1
mov byte [0x101397e9], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 7
mov byte [0x101397ea], cl
mov ax, word [eax + 0x1e]
mov ecx, dword [esp + 0x14]
shr ax, 8
xor ecx, esp
and al, 1
mov byte [0x101397eb], al
call fcn.100c2ed5
mov esp, ebp
pop ebp
ret