Function at 0x10055e30
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 [0x1013b3dc]
xor eax, esp
mov dword [esp + 0x14], eax
push esi
push edi
call fcn.10054740
call fcn.10053850
call fcn.10053d90
call fcn.10054320
lea eax, [esp + 8]
push eax
call dword [0x1018b550]
movss xmm7, dword [0x1012cf24]
add esp, 4
cmp dword [0x101861e4], 0
xorps xmm5, xmm5
movss xmm4, dword [0x1012cd64]
jne 0x10055e98
movss xmm2, dword [0x101dd45c]
mov byte [0x1018d29c], 0
jmp 0x10056013
cmp byte [0x1018d29c], 0
movss xmm3, dword [0x101861f0]
mov ecx, dword [0x1018b6e0]
jne 0x10055ed2
comiss xmm3, xmm5
jbe 0x10055ec5
movss xmm0, dword [ecx + 0x9c]
comiss xmm0, dword [0x1012d19c]
ja 0x10055ed2
movss xmm2, dword [0x101dd45c]
jmp 0x10056013
movss xmm0, dword [0x101dd460]
comiss xmm0, xmm5
ja 0x10055ec5
movss xmm6, dword [ecx + 0x9c]
comiss xmm5, xmm6
ja 0x10055ec5
movss xmm2, dword [0x101dd45c]
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jnp 0x10056013
movss xmm0, dword [0x101dd474]
comiss xmm0, dword [0x1012d074]
ja 0x10056013
mov eax, dword [ecx + 0x4f4f0]
movss xmm1, dword [eax]
mulss xmm1, dword [0x10189d7c]
addss xmm1, xmm6
mulss xmm1, dword [0x10189d7c]
mulss xmm1, xmm7
movss xmm7, dword [0x101dd468]
movaps xmm0, xmm7
subss xmm0, xmm1
comiss xmm0, xmm5
ja 0x1005600b
cmp byte [0x1018d29c], 0
je 0x10055f61
movss xmm3, dword [0x101861ec]
ucomiss xmm6, xmm5
lahf
test ah, 0x44
jp 0x10055f6d
movaps xmm6, xmm4
ucomiss xmm7, xmm5
lahf
test ah, 0x44
jp 0x10055f79
movaps xmm7, xmm4
movss xmm1, dword [0x101dd474]
movaps xmm4, xmm1
mov ecx, dword [0x10189d78]
movaps xmm0, xmm1
mov eax, dword [0x101de3a0]
divss xmm4, xmm2
divss xmm0, xmm6
divss xmm1, xmm7
divss xmm4, xmm0
mulss xmm4, xmm1
movsd xmm1, qword [ecx]
sub eax, 0
je 0x10055fd6
sub eax, 1
jne 0x10055ff7
subss xmm3, xmm4
mov dword [0x101de3a0], eax
mulss xmm3, dword [0x10189d7c]
divss xmm3, dword [0x1012cfa8]
cvtps2pd xmm0, xmm3
addsd xmm1, xmm0
jmp 0x10055ff7
mulss xmm4, dword [0x10189d7c]
mov dword [0x101de3a0], 1
divss xmm4, dword [0x1012cfa8]
cvtps2pd xmm0, xmm4
subsd xmm1, xmm0
movss xmm4, dword [0x1012cd64]
movsd qword [ecx], xmm1
movss xmm2, dword [0x101dd45c]
movss xmm7, dword [0x1012cf24]
cmp byte [0x101dd450], 0
xorps xmm0, xmm0
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
jne 0x100561fe
cmp dword [0x101dd434], 3
je 0x100561fe
mov ecx, dword [0x10186228]
test ecx, ecx
je 0x1005604d
cmp byte [0x1018d2a9], 0
je 0x100561fe
movss xmm1, dword [0x10186230]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10056066
movss xmm0, dword [0x1012cd44]
ucomiss xmm1, dword [0x1012ceec]
lahf
test ah, 0x44
jp 0x1005607b
movss xmm0, dword [0x1012cd48]
ucomiss xmm1, xmm7
lahf
test ah, 0x44
jp 0x1005608c
movss xmm0, dword [0x1012cd4c]
ucomiss xmm1, dword [0x1012cf68]
lahf
test ah, 0x44
jp 0x100560a1
movss xmm0, dword [0x1012cd58]
ucomiss xmm1, dword [0x1012cf7c]
lahf
test ah, 0x44
jp 0x100560b6
movss xmm0, dword [0x1012cd5c]
cmp byte [0x1018622d], 0
je 0x100561fe
test ecx, ecx
je 0x100561fe
movsd xmm1, qword [0x1012ceb8]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movsd xmm0, qword [0x10189f20]
ucomisd xmm0, xmm1
movsd qword [esp + 8], xmm1
lahf
test ah, 0x44
jnp 0x10056159
push 0x10190e60
push 0x40
push 8
push dword [0x1018ca5c]
call edi
movsd xmm0, qword [esp + 8]
mulsd xmm0, qword [0x1012cf70]
mov eax, dword [0x1018ca5c]
push 0x10190e60
movsd qword [eax], xmm0
push dword [0x10190e60]
mov esi, dword [0x1018ca5c]
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 [0x101dd45c]
movsd qword [0x10189f20], xmm0
cmp byte [0x1018622e], 0
je 0x100561fe
movss xmm0, dword [0x1012d0e4]
comiss xmm2, xmm0
jbe 0x10056188
mov eax, dword [0x10190afc]
mov dword [eax + 0x10], 0xc47a0000
mov dword [eax + 0x14], 0xc47a0000
jmp 0x100561fe
comiss xmm0, xmm2
jb 0x100561a2
mov eax, dword [0x10190afc]
mov dword [eax + 0x10], 0xc2c80000
mov dword [eax + 0x14], 0xc2c80000
jmp 0x100561fe
movss xmm0, dword [0x1012d0bc]
comiss xmm0, xmm2
jb 0x100561c4
mov eax, dword [0x10190afc]
mov dword [eax + 0x10], 0xc1200000
mov dword [eax + 0x14], 0xc1200000
jmp 0x100561fe
movss xmm0, dword [0x1012d048]
comiss xmm0, xmm2
jb 0x100561e6
mov eax, dword [0x10190afc]
mov dword [eax + 0x10], 0xbf800000
mov dword [eax + 0x14], 0xbf800000
jmp 0x100561fe
comiss xmm5, xmm2
jb 0x100561fe
mov eax, dword [0x10190afc]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov edx, dword [0x1018628c]
cvttss2si ecx, dword [0x101dd474]
mov eax, dword [0x10190afc]
add edx, 3
cmp byte [0x10186280], 0
je 0x10056260
cmp dword [0x10186284], 0
je 0x1005622f
cmp byte [0x1018d2b1], 0
je 0x10056260
cmp ecx, edx
jg 0x10056260
test ecx, ecx
je 0x10056260
cmp byte [0x1018d297], 0
jne 0x10056260
cmp byte [0x1018d29b], 0
jne 0x10056260
cmp byte [0x1018d29c], 0
jne 0x10056260
cmp byte [0x101dd454], 0
jne 0x10056260
or word [eax + 0x1e], 2
cmp byte [0x10186262], 0
jne 0x10056270
call fcn.100a9780
jmp 0x100562b0
mov eax, dword [0x1018626c]
cmp eax, 1
jne 0x1005629a
cmp byte [0x1018d29d], 0
je 0x100562b0
movss xmm1, dword [0x10186270]
mov ecx, 0x10190a64
call fcn.100a9640
mov eax, dword [0x1018626c]
test eax, eax
jne 0x100562b0
movss xmm1, dword [0x10186270]
mov ecx, 0x10190904
call fcn.100a9640
push str.hw.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp byte [0x10186274], 0
mov esi, eax
je 0x1005642d
mov ecx, dword [0x1018acc4]
mov eax, dword fs:[0x2c]
cmp dword [0x1018627c], 0
mov dword [esi + 0xab7c30], 0
mov ecx, dword [eax + ecx*4]
jne 0x10056399
mov eax, dword [0x101de38c]
cmp eax, dword [ecx + 4]
jle 0x10056335
push 0x101de38c
call fcn.100c56fb
add esp, 4
cmp dword [0x101de38c], 0xffffffff
jne 0x10056335
mov eax, dword [0x1018b4c4]
push 0x101de38c
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101de3a8], xmm0
call fcn.100c56b1
add esp, 4
movss xmm0, dword [0x10186278]
movsd xmm1, qword [0x1012cf70]
cvtps2pd xmm0, xmm0
mov eax, dword [0x1018b4c4]
movsd xmm2, qword [eax + 0x2af98]
divsd xmm1, xmm0
subsd xmm2, qword [0x101de3a8]
divsd xmm1, qword [0x1012cf70]
andps xmm2, xmmword [0x1012eb70]
comisd xmm2, xmm1
jb 0x1005642d
mov dword [esi + 0xab7c30], 1
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101de3a8], xmm0
jmp 0x1005642d
mov eax, dword [0x101de39c]
cmp eax, dword [ecx + 4]
jle 0x100563de
push 0x101de39c
call fcn.100c56fb
add esp, 4
cmp dword [0x101de39c], 0xffffffff
jne 0x100563de
mov eax, dword [0x1018b4c4]
push 0x101de39c
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101de378], xmm0
call fcn.100c56b1
add esp, 4
movss xmm0, dword [0x10186278]
cvtps2pd xmm0, xmm0
mov eax, dword [0x1018b4c4]
movsd xmm1, qword [eax + 0x2af98]
divsd xmm0, qword [0x1012cf70]
subsd xmm1, qword [0x101de378]
andps xmm1, xmmword [0x1012eb70]
comisd xmm1, xmm0
jb 0x1005642d
mov dword [esi + 0xab7c30], 1
movsd xmm0, qword [eax + 0x2af98]
movsd qword [0x101de378], xmm0
call fcn.10055910
call fcn.10055450
lea eax, [esp + 8]
push eax
call dword [0x1018b550]
add esp, 4
mov cl, 1
cmp byte [0x101862ed], 0
mov al, cl
je 0x10056464
cmp dword [0x101862f0], 0
je 0x10056466
cmp byte [0x1018d2b6], 0
jne 0x10056466
xor cl, cl
cmp byte [0x101862e4], 0
je 0x10056481
cmp dword [0x101862e8], 0
je 0x10056483
cmp byte [0x1018d2b5], 0
jne 0x10056483
xor al, al
cmp byte [0x101dd454], 0
je 0x10056555
test cl, cl
je 0x100564a5
mov byte [0x1018d2b5], 0
mov dword [esp + 8], 0xc2b20000
jmp 0x100564bc
test al, al
je 0x10056573
mov byte [0x1018d2b6], 0
mov dword [esp + 8], 0x42b20000
lea eax, [esp + 8]
mov word [0x1018d2ae], 0
push eax
mov byte [0x1018bc04], 1
call dword [0x1018b554]
movsd xmm0, qword [0x10189f20]
add esp, 4
ucomisd xmm0, qword [0x1012cf50]
lahf
test ah, 0x44
jnp 0x10056548
push 0x10190e60
push 0x40
push 8
push dword [0x1018ca5c]
call edi
mov eax, dword [0x1018ca5c]
movsd xmm0, qword [0x1012cf98]
push 0x10190e60
movsd qword [eax], xmm0
push dword [0x10190e60]
mov esi, dword [0x1018ca5c]
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 [0x1012cf50]
movsd qword [0x10189f20], xmm0
push str.forward
call dword [0x1018b518]
jmp 0x10056570
cmp byte [0x1018bc04], 0
je 0x10056573
push str._forward
call dword [0x1018b518]
mov byte [0x1018bc04], 0
add esp, 4
mov eax, dword [0x10190afc]
mov dword [0x1018bc88], eax
pop edi
pop esi
movzx ecx, byte [eax + 0x1e]
shr cl, 3
and cl, 1
mov byte [0x1013c7ec], cl
movzx ecx, word [eax + 0x1e]
shr cx, 9
and cl, 1
mov byte [0x1013c7ed], cl
movzx ecx, word [eax + 0x1e]
shr cx, 0xa
and cl, 1
mov byte [0x1013c7ef], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 4
and cl, 1
mov byte [0x1013c7ee], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 2
and cl, 1
mov byte [0x1013c7f0], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 1
and cl, 1
mov byte [0x1013c7f1], cl
movzx ecx, byte [eax + 0x1e]
shr cl, 7
mov byte [0x1013c7f2], cl
mov ax, word [eax + 0x1e]
mov ecx, dword [esp + 0x14]
shr ax, 8
xor ecx, esp
and al, 1
mov byte [0x1013c7f3], al
call fcn.100c55b5
mov esp, ebp
pop ebp
ret