Function at 0x10227af0
Capabilities:
Create directory
Enumerate process modules
Query environment variable
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1ebc
call fcn.10451050
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x618
lea eax, [ebp - 0x1250]
mov ebx, ecx
push 0
push eax
mov dword [ebp - 0x1ea8], ebx
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0xc38]
push 0x618
push 0
push eax
call fcn.10425c00
add esp, 0xc
lea eax, [ebp - 0x1c68]
push 0x618
push 0
push eax
call fcn.10425c00
add esp, 0xc
add ebx, 0xf4c
mov ecx, ebx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10227b60
sub ecx, edx
mov dword [ebp - 0x1eac], 0
push 0xffffffffffffffff
push ebx
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x1c68]
push eax
lea eax, [ebp - 0x1eac]
push eax
call fcn.1043b2ed
add esp, 0x14
lea eax, [ebp - 0xc38]
push 0x1046ec80
push 0x1046cb40
push 0x30c
push eax
call fcn.10238bf0
mov edi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea eax, [ebp - 0x1250]
add esp, 0x10
push 0x30c
push eax
lea eax, [ebp - 0xc38]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x1250]
push 0
push eax
call esi
push 0x1046eca0
push 0x1046cb40
lea eax, [ebp - 0xc38]
push 0x30c
push eax
call fcn.10238bf0
add esp, 0x10
lea eax, [ebp - 0x1250]
push 0x30c
push eax
lea eax, [ebp - 0xc38]
push eax
call edi
push 0
lea eax, [ebp - 0x1250]
push eax
call esi
lea eax, [ebp - 0x1c68]
push eax
lea eax, [ebp - 0x1250]
push eax
push 0x10468ef0
lea eax, [ebp - 0xc38]
push 0x30c
push eax
call fcn.10238bf0
add esp, 0x14
lea eax, [ebp - 0xc38]
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, dword [ebp - 0x1ea8]
mov dword [esi + 0x3fe4], eax
cmp eax, 0xffffffff
jne 0x10227c85
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x43849c0
jne 0x10227c95
mov ecx, esi
call fcn.10229110
mov edx, ebx
lea eax, [esi + 0xfcc]
mov cl, byte [edx]
test cl, cl
je 0x10227cb6
mov bl, byte [eax]
test bl, bl
je 0x10227cb6
cmp cl, bl
jne 0x10227ce6
mov cl, byte [edx + 1]
inc edx
inc eax
test cl, cl
jne 0x10227ca3
movsx eax, byte [eax]
movsx ecx, byte [edx]
sub ecx, eax
lea edi, [esi + 0x4008]
test ecx, ecx
je 0x10227cee
lea eax, [esi + 0xfcc]
push eax
lea eax, [esi + 0xf4c]
push eax
push 0x1046ecd0
push edi
call fcn.10098560
add esp, 0x10
jmp 0x10227d03
movsx eax, bl
movsx ecx, cl
jmp 0x10227cbc
lea eax, [esi + 0xf4c]
push eax
push 0x1046ecf0
push edi
call fcn.10098560
add esp, 0xc
xor eax, eax
cmp byte [edi], al
je 0x10227d17
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10227d10
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10227d22
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10227d3d
inc eax
cmp byte [eax + edi], 0
jne 0x10227d36
push 0
lea ecx, [ebp - 0x1e94]
push ecx
push eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
push dword [esi + 0x3fe4]
mov dword [ebp - 0x1e98], eax
call eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1ea0], ebx
test eax, eax
jne 0x10227d6d
call ebx
push dword [esi + 0x3fe4]
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov dword [ebp - 0x1e9c], eax
call eax
mov byte [edi], 0
cmp dword [esi + 0x53e8], 2
jne 0x10227e2b
mov ecx, 0x1046ed00
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10227d98
sub ecx, edx
mov dword [ebp - 0x1e94], 0
push 0xffffffffffffffff
push 0x1046ed00
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x1e94]
push eax
call fcn.1043b2ed
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10227dd9
inc eax
cmp byte [eax + edi], 0
jne 0x10227dd2
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10227de4
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10227dff
inc eax
cmp byte [eax + edi], 0
jne 0x10227df8
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10227e1c
call ebx
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
movss xmm0, dword [esi + 8]
mulss xmm0, dword [0x1122d514]
divss xmm0, dword [esi + 0x78]
call fcn.10451080
mov dword [ebp - 0x1e94], eax
lea ecx, [ebp - 0x108]
mov eax, 0x1046c220
mov ebx, ecx
mov dl, 0x53
sub eax, ebx
nop dword [eax]
mov byte [ecx], dl
lea ecx, [ecx + 1]
mov dl, byte [ecx + eax]
test dl, dl
jne 0x10227e60
push 0
lea eax, [ebp - 0x108]
mov byte [ecx], dl
lea ebx, [esi + 0x9b8]
push eax
mov ecx, ebx
call fcn.101ffd90
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d890
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 8]
movss xmm0, dword [esi + 8]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ed20
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10227ecb
inc eax
cmp byte [eax + edi], 0
jne 0x10227ec4
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10227ed6
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10227ef7
nop word [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10227ef0
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10227f18
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
movss xmm0, dword [esi + 0x4c]
ucomiss xmm0, dword [0x1122d240]
lahf
test ah, 0x44
jnp 0x1022801d
mov eax, dword [esi + 0x4c]
mov edx, 0x1046c220
mov dword [ebp - 0x1e94], eax
mov cl, 0x53
lea eax, [ebp - 0x108]
mov ebx, eax
sub edx, ebx
lea ebx, [esi + 0x9b8]
nop dword [eax]
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10227f60
mov byte [eax], cl
lea eax, [ebp - 0x108]
push 0
push eax
mov ecx, ebx
call fcn.101ffd90
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d480
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 0x4c]
movss xmm0, dword [esi + 0x4c]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ed40
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10227fc7
nop
inc eax
cmp byte [eax + edi], 0
jne 0x10227fc0
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10227fd2
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10227fed
inc eax
cmp byte [eax + edi], 0
jne 0x10227fe6
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x1022800e
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x1122d540]
call fcn.10451080
movss xmm0, dword [esi + 0x18]
push eax
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ed60
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x1022805b
inc eax
cmp byte [eax + edi], 0
jne 0x10228054
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228066
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228087
nop word [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228080
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102280a8
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x1122d540]
call fcn.10451080
mov dword [ebp - 0x1e94], eax
mov ecx, ebx
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x102280fc
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d220
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 0x14]
movss xmm0, dword [esi + 0x14]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ed80
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x1022812a
inc eax
cmp byte [eax + edi], 0
jne 0x10228123
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228135
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228157
nop dword [eax]
inc eax
cmp byte [edi + eax], 0
jne 0x10228150
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228178
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
mov ecx, ebx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x102281bd
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d200
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 0x3f94]
movss xmm0, dword [esi + 0x3f94]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046eda0
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x102281f7
nop word [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x102281f0
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228202
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x1022821d
inc eax
cmp byte [edi + eax], 0
jne 0x10228216
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x1022823e
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
push dword [esi + 0x3f98]
movss xmm0, dword [esi + 0x3f98]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046edc0
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10228287
nop word [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228280
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228292
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x102282ad
inc eax
cmp byte [edi + eax], 0
jne 0x102282a6
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102282ce
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
mov eax, dword [esi + 0x68]
mov dword [ebp - 0x1e94], eax
test eax, eax
je 0x1022838d
push 1
lea eax, [esi + 0x104c]
mov ecx, ebx
push eax
call fcn.101ffd90
test al, al
je 0x1022831b
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d730
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push 0x1046ede0
push edi
call fcn.10098560
xor eax, eax
add esp, 8
cmp byte [edi], al
je 0x10228337
nop
inc eax
cmp byte [eax + edi], 0
jne 0x10228330
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228342
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x1022835d
inc eax
cmp byte [edi + eax], 0
jne 0x10228356
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x1022837e
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
mov dl, byte [esi + 0xa4]
mov bl, byte [esi + 0xa5]
movzx eax, dl
shr eax, 7
mov dword [ebp - 0x1e94], eax
movzx ecx, bl
mov eax, ecx
shr eax, 2
and eax, 0x10
or dword [ebp - 0x1e94], eax
mov eax, ecx
and eax, 3
and ecx, 8
add eax, eax
or dword [ebp - 0x1e94], eax
mov eax, 0x1046ee10
or dword [ebp - 0x1e94], ecx
test dl, dl
mov ecx, 0x10469160
cmovns eax, ecx
test bl, 1
push eax
mov eax, 0x1046ee20
cmove eax, ecx
test bl, 2
push eax
mov eax, 0x1046ee30
cmove eax, ecx
test bl, 8
push eax
mov eax, 0x1046ee40
cmove eax, ecx
test bl, 0x40
push eax
mov eax, 0x1046ee50
cmove eax, ecx
push eax
push dword [ebp - 0x1e94]
push 0x1046ee60
push edi
call fcn.10098560
xor eax, eax
add esp, 0x20
cmp byte [edi], al
je 0x1022842d
inc eax
cmp byte [eax + edi], 0
jne 0x10228426
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228438
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228457
nop dword [eax]
inc eax
cmp byte [edi + eax], 0
jne 0x10228450
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228478
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
lea ebx, [esi + 0x9b8]
test byte [esi + 0x70], 0x10
je 0x102284c0
push 1
lea eax, [esi + 0x104c]
mov ecx, ebx
push eax
call fcn.101ffd90
test al, al
je 0x102284c0
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d930
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
movss xmm0, dword [esi + 0x38]
movss dword [ebp - 0x1e94], xmm0
push dword [ebp - 0x1e94]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ee90
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x102284f9
inc eax
cmp byte [eax + edi], 0
jne 0x102284f2
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228504
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x1022851f
inc eax
cmp byte [eax + edi], 0
jne 0x10228518
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228540
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
movss xmm1, dword [ebp - 0x1e94]
movss xmm0, dword [0x1122d1b8]
mov byte [edi], 0
mulss xmm1, dword [esi + 0x14]
mulss xmm1, dword [esi + 0x10]
divss xmm0, xmm1
movss dword [ebp - 0x1e94], xmm0
push dword [ebp - 0x1e94]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046eec0
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x102285a7
nop word [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x102285a0
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x102285b2
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x102285cd
inc eax
cmp byte [eax + edi], 0
jne 0x102285c6
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102285ee
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
movss xmm1, dword [ebp - 0x1e94]
mov byte [edi], 0
movss xmm2, dword [esi + 0x3f94]
comiss xmm1, xmm2
jbe 0x102286e7
movss xmm0, dword [esi + 0x3f98]
subss xmm1, xmm2
subss xmm0, xmm2
sub esp, 8
lea eax, [ebp - 0x1650]
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push 0x1046eef0
push eax
call fcn.10098560
xor eax, eax
add esp, 0x10
cmp byte [edi], al
je 0x10228657
nop
inc eax
cmp byte [eax + edi], 0
jne 0x10228650
mov cl, byte [ebp - 0x1650]
add eax, edi
test cl, cl
je 0x1022867a
lea edx, [ebp - 0x1650]
sub edx, eax
nop dword [eax + eax]
mov byte [eax], cl
inc eax
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228670
mov byte [eax], 0
xor eax, eax
cmp byte [edi], al
je 0x1022868a
inc eax
cmp byte [eax + edi], 0
jne 0x10228683
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228695
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x102286b7
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x102286b0
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102286d8
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test dword [esi + 4], 0x4000
jne 0x1022872b
movss xmm0, dword [esi + 0x3f9c]
ucomiss xmm0, dword [0x1122d558]
lahf
test ah, 0x44
jnp 0x1022872b
push dword [esi + 0x3f9c]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ef30
push edi
call fcn.10098560
add esp, 0x10
mov ecx, esi
call fcn.10229090
test byte [esi + 4], 0x40
je 0x102287ef
mov eax, dword [esi + 0x30]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x1022876b
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d7c0
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 0x30]
movss xmm0, dword [esi + 0x30]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ef60
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10228799
inc eax
cmp byte [eax + edi], 0
jne 0x10228792
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x102287a4
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x102287bf
inc eax
cmp byte [eax + edi], 0
jne 0x102287b8
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102287e0
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test dword [esi + 4], 0x100
je 0x102288bd
mov eax, dword [esi + 0x34]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228832
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d810
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
push dword [esi + 0x34]
movss xmm0, dword [esi + 0x34]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046ef80
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10228867
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228860
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228872
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x1022888d
inc eax
cmp byte [eax + edi], 0
jne 0x10228886
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x102288ae
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
mov ecx, dword [esi + 0x3fc0]
test cl, 0xf
je 0x102288ea
test cl, 2
mov edx, 0x1046efb0
mov eax, 0x1046efa0
cmove eax, edx
push eax
push ecx
push 0x1046efc0
push edi
call fcn.10098560
add esp, 0x10
jmp 0x102288f8
push 0x1046efe0
push edi
call fcn.10098560
add esp, 8
xor eax, eax
cmp byte [edi], al
je 0x10228907
nop
inc eax
cmp byte [eax + edi], 0
jne 0x10228900
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228912
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x1022892d
inc eax
cmp byte [eax + edi], 0
jne 0x10228926
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x1022894e
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test byte [esi + 0x70], 0x20
je 0x1022899c
mov eax, dword [esi + 0x3fc0]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x1022899c
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046e7e0
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
cmp dword [esi + 0x3fc0], 2
jne 0x10228a37
push dword [esi + 0x3fb4]
movss xmm0, dword [esi + 0x3fb4]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046f000
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x102289dd
inc eax
cmp byte [eax + edi], 0
jne 0x102289d6
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x102289e8
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228a07
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228a00
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228a28
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test byte [esi + 0x70], 0x40
je 0x10228a76
mov eax, dword [esi + 0x3fb4]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228a76
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046e7f0
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
cmp dword [esi + 0x3fc0], 4
jne 0x10228b0d
push dword [esi + 0x3fb8]
movss xmm0, dword [esi + 0x3fb8]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046f020
push edi
call fcn.10098560
xor eax, eax
add esp, 0x14
cmp byte [edi], al
je 0x10228ab7
inc eax
cmp byte [eax + edi], 0
jne 0x10228ab0
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228ac2
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228add
inc eax
cmp byte [edi + eax], 0
jne 0x10228ad6
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228afe
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test byte [esi + 0x70], 0x80
je 0x10228b4c
mov eax, dword [esi + 0x3fb8]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228b4c
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046e810
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
test dword [esi + 4], 0x800
je 0x10228bb4
push 1
lea eax, [esi + 0x104c]
mov ecx, ebx
push eax
call fcn.101ffd90
test al, al
je 0x10228b7e
push 1
push 0x1046d1a0
mov ecx, ebx
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
mov eax, dword [esi + 0x48]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228bb4
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d270
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
test dword [esi + 0x70], 0x100
je 0x10228bf3
mov eax, dword [esi + 0x3c]
mov ecx, ebx
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228bf3
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d440
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
test dword [esi + 4], 0x8000
je 0x10228c3f
push 0x1046f040
push edi
call fcn.10098560
xor eax, eax
add esp, 8
cmp byte [edi], al
je 0x10228c17
inc eax
cmp byte [eax + edi], 0
jne 0x10228c10
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10228c22
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228c87
inc eax
cmp byte [edi + eax], 0
jne 0x10228c36
jmp 0x10228c87
push 0x1046f060
push edi
call fcn.10098560
xor eax, eax
add esp, 8
cmp byte [edi], al
je 0x10228c5a
inc eax
cmp byte [eax + edi], 0
jne 0x10228c53
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228c65
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228c87
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228c80
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228ca8
call dword [ebp - 0x1ea0]
push dword [esi + 0x3fe4]
call dword [ebp - 0x1e9c]
mov byte [edi], 0
test byte [esi + 0x70], 1
je 0x10228d13
mov eax, dword [esi + 4]
mov ecx, ebx
shr eax, 0xf
and eax, 1
mov dword [ebp - 0x1e94], eax
lea eax, [esi + 0x104c]
push 1
push eax
call fcn.101ffd90
test al, al
je 0x10228cf9
push dword [ebp - 0x1e94]
mov ecx, ebx
push 0x1046d530
call fcn.102008e0
mov ecx, ebx
call fcn.102000a0
cmp dword [esi + 0x39a4], 1
jne 0x10228d13
push ecx
push 0
push 1
push 0x1046d520
mov ecx, esi
call fcn.102278d0
test byte [esi + 0x70], 4
je 0x10228d5c
push ecx
push 0
push dword [esi + 0x3a74]
mov ecx, esi
push 0x1046d5a0
call fcn.102278d0
push dword [esi + 0x3a74]
movss xmm0, dword [esi + 0x3a74]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046f080
push edi
call fcn.10098560
add esp, 0x10
mov ecx, esi
call fcn.10229090
test byte [esi + 0x70], 8
je 0x10228da5
push ecx
push 0
push dword [esi + 0x3a78]
mov ecx, esi
push 0x1046d5b0
call fcn.102278d0
push dword [esi + 0x3a78]
movss xmm0, dword [esi + 0x3a78]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x1046f0b0
push edi
call fcn.10098560
add esp, 0x10
mov ecx, esi
call fcn.10229090
mov ecx, dword [esi + 0x9fc]
test cl, 1
je 0x10228de2
test cl, 4
mov edx, 0x1046ebc0
mov eax, 0x1046b330
cmove eax, edx
test cl, 8
push eax
mov ecx, 0x1046ebd0
mov eax, 0x1046b480
cmove eax, ecx
push eax
push 0x1046f0e0
push edi
call fcn.10098560
add esp, 0xc
jmp 0x10228df0
push 0x1046f110
push edi
call fcn.10098560
add esp, 4
mov ecx, esi
call fcn.10229090
test byte [esi + 0x70], 2
je 0x10228e12
push ecx
push 0
push dword [esi + 0x9fc]
mov ecx, esi
push 0x1046e8a0
call fcn.102278d0
mov ecx, dword [esi + 0x4420]
movzx eax, cl
push eax
sar ecx, 8
push ecx
push 0x1046f130
push edi
call fcn.10098560
add esp, 0xc
mov ecx, esi
call fcn.10229090
mov ebx, dword [ebp - 0x1ea8]
mov esi, 0x1046f150
mov ecx, 0x1046f160
mov eax, esi
cmp byte [ebx + 0x4006], 0
cmove eax, ecx
push eax
push 0x1046f170
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
cmp byte [ebx + 0x4007], 0
mov eax, 0x1046f160
cmove esi, eax
push esi
push 0x1046f190
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
mov eax, dword [ebx + 0x4408]
test eax, eax
je 0x10228eac
push eax
push 0x1046f1b0
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
mov eax, dword [ebx + 0x440c]
test eax, eax
je 0x10228ecc
push eax
push 0x1046f1d0
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
mov eax, dword [ebx + 0x4410]
test eax, eax
je 0x10228eec
push eax
push 0x1046f1f0
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
mov eax, dword [ebx + 0x4414]
test eax, eax
je 0x10228f0c
push eax
push 0x1046f210
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
mov eax, dword [ebx + 0x4418]
test eax, eax
je 0x10228f2c
push eax
push 0x1046f230
push edi
call fcn.10098560
add esp, 8
mov ecx, ebx
call fcn.10229090
push 0x1046f250
push edi
call fcn.10098560
add esp, 4
mov ecx, ebx
call fcn.10229090
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 8
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
je 0x1022901e
lea eax, [ebp - 0x1e90]
mov dword [ebp - 0x1e90], 0x224
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Module32First]
test eax, eax
je 0x10229013
nop dword [eax + eax]
lea eax, [ebp - 0x1e70]
push eax
push 0x1046b0a0
push edi
call fcn.10098560
xor eax, eax
add esp, 0xc
cmp byte [edi], al
je 0x10228fa7
nop dword [eax + eax]
inc eax
cmp byte [eax + edi], 0
jne 0x10228fa0
add eax, edi
mov edx, 0x1046f2c0
mov cl, 0xd
sub edx, eax
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10228fb2
mov byte [eax], cl
xor eax, eax
cmp byte [edi], al
je 0x10228fcd
inc eax
cmp byte [eax + edi], 0
jne 0x10228fc6
push 0
lea ecx, [ebp - 0x1ea4]
push ecx
push eax
push edi
push dword [ebx + 0x3fe4]
call dword [ebp - 0x1e98]
test eax, eax
jne 0x10228fee
call dword [ebp - 0x1ea0]
push dword [ebx + 0x3fe4]
call dword [ebp - 0x1e9c]
lea eax, [ebp - 0x1e90]
mov byte [edi], 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Module32Next]
test eax, eax
jne 0x10228f80
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
jmp 0x10229024
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x1046f270
push edi
call fcn.10098560
add esp, 4
mov ecx, ebx
call fcn.10229090
push 0x1046f290
push edi
call fcn.10098560
add esp, 4
mov ecx, ebx
call fcn.10229090
lea eax, [ebp - 0x1eb8]
push eax
call fcn.1043f256
push 0
push dword [ebp - 0x1eb8]
mov ecx, ebx
push 0x1046f2b0
call fcn.102278d0
push dword [ebx + 0x3fe4]
call esi
mov ecx, ebx
call fcn.1021efe0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret