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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x9b0
cmp dword [edx + 0x28], 0x80000000
call 0x100f063b
pop eax
mov esi, edx
mov dword [esp + 0xa8], ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x30], eax
mov eax, 8
mov dword [esp + 0x34], esi
cmovne eax, dword [edx + 0x30]
mov edx, str.RUST_LOG_internal_error:_entered_unreachable_code:
cmovne edx, dword [esi + 0x2c]
push eax
call fcn.100e5770
add esp, 4
mov eax, dword [esp + 0x170]
cmp eax, 0x80000000
jne 0x100f068b
mov byte [esp + 0x1b], 1
mov edi, 1
xor esi, esi
jmp 0x100f06b6
mov ecx, dword [esp + 0x174]
mov esi, dword [esp + 0x178]
cmp byte [esp + 0x17c], 0
mov dword [esp + 0x3c], ecx
je 0x100f1828
mov edi, dword [esp + 0x3c]
test eax, eax
sete byte [esp + 0x1b]
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x490], 0x2c
mov dword [esp + 0x494], edi
mov dword [esp + 0x498], esi
mov dword [esp + 0x49c], 0
mov dword [esp + 0x4a0], esi
mov dword [esp + 0x4a4], 0x2c
mov byte [esp + 0x4a8], 1
mov dword [esp + 0x4ac], 0
mov dword [esp + 0x4b0], esi
mov word [esp + 0x4b4], 1
lea edx, [esp + 0x490]
mov dword [esp + 0x4b8], ecx
lea ecx, [esp + 0x5c8]
mov dword [esp + 0xc4], eax
call fcn.100f2220
cmp dword [esp + 0x5c8], 6
mov dword [esp + 0x3c], edi
jne 0x100f075f
mov dword [esp + 8], 4
mov dword [esp + 0x10], 0
jmp 0x100f0944
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, 0xa0
call fcn.100ea7d0
test eax, eax
je 0x100f21c7
movsd xmm0, qword [esp + 0x5e8]
mov dword [esp + 8], eax
mov ebx, 1
mov esi, 0x28
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x5e0]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x5d8]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x5c8]
movsd xmm1, qword [esp + 0x5d0]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [esp + 0x858], 4
mov dword [esp + 0x85c], eax
mov dword [esp + 0x860], 1
movsd xmm2, qword [esp + 0x4a8]
movsd xmm1, qword [esp + 0x4a0]
mov eax, dword [esp + 0x4b8]
movq xmm0, qword [esp + 0x4b0]
movsd qword [esp + 0x188], xmm2
movsd qword [esp + 0x180], xmm1
movq xmm2, qword [esp + 0x490]
movsd xmm1, qword [esp + 0x498]
mov dword [esp + 0x198], eax
movq qword [esp + 0x190], xmm0
movsd qword [esp + 0x178], xmm1
movq qword [esp + 0x170], xmm2
jmp 0x100f08b9
movsd xmm0, qword [esp + 0x740]
inc ebx
mov dword [esp + 8], eax
movsd qword [eax + esi + 0x20], xmm0
movsd xmm0, qword [esp + 0x738]
movsd qword [eax + esi + 0x18], xmm0
movsd xmm0, qword [esp + 0x730]
movsd qword [eax + esi + 0x10], xmm0
movq xmm0, qword [esp + 0x720]
movsd xmm1, qword [esp + 0x728]
movsd qword [eax + esi + 8], xmm1
movq qword [eax + esi], xmm0
mov dword [esp + 0x860], ebx
add esi, 0x28
lea ecx, [esp + 0x720]
lea edx, [esp + 0x170]
call fcn.100f2220
cmp dword [esp + 0x720], 6
je 0x100f0901
cmp ebx, dword [esp + 0x858]
mov eax, dword [esp + 8]
jne 0x100f0860
lea ecx, [esp + 0x858]
mov edx, ebx
call fcn.10115c60
mov eax, dword [esp + 0x85c]
jmp 0x100f0860
mov eax, dword [esp + 0x858]
test ebx, ebx
mov dword [esp + 0x10], eax
je 0x100f0944
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x34], 0
jne 0x100f0946
mov eax, dword [esp + 8]
lea edi, [eax + 0xc]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [edi - 4]
mov edx, dword [edi]
call fcn.100f3570
add edi, 0x28
add esi, 0xffffffd8
jne 0x100f0930
jmp 0x100f0946
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x5c8], 0
mov dword [esp + 0x5cc], 4
mov dword [esp + 0x720], 0
mov dword [esp + 0x724], 4
mov dword [esp + 0x5d0], 0
mov dword [esp + 0x728], 0
je 0x100f0ab0
mov edi, dword [esp + 8]
lea eax, [ebx + ebx*4]
lea eax, [edi + eax*8]
mov dword [esp], eax
jmp 0x100f0a0f
mov ecx, esi
call fcn.1009c290
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x498]
lea ecx, [ebx + ebx*4]
add edi, 0x28
inc ebx
cmp edi, dword [esp]
mov dword [eax + ecx*8 + 8], edx
mov edx, dword [esp + 4]
movsd xmm0, qword [esp + 0x490]
movsd qword [eax + ecx*8], xmm0
mov dword [eax + ecx*8 + 0xc], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*8 + 0x10], edx
movq xmm0, qword [esp + 0x170]
movsd xmm1, qword [esp + 0x178]
movq qword [eax + ecx*8 + 0x14], xmm0
movsd qword [eax + ecx*8 + 0x1c], xmm1
mov edx, dword [esp + 0x180]
mov dword [eax + ecx*8 + 0x24], edx
mov dword [esi + 8], ebx
je 0x100f0ab0
mov eax, dword [edi + 8]
mov dword [esp + 0x498], eax
movsd xmm0, qword [edi]
movsd qword [esp + 0x490], xmm0
mov eax, dword [edi + 0x24]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x180], eax
cmp edx, 0x80000000
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
movsd xmm0, qword [edi + 0x14]
movsd xmm1, qword [edi + 0x1c]
movsd qword [esp + 0x178], xmm1
movsd qword [esp + 0x170], xmm0
jne 0x100f0a90
test ecx, ecx
jne 0x100f0a90
mov ebx, dword [esp + 0x728]
lea esi, [esp + 0x720]
cmp ebx, dword [esp + 0x720]
je 0x100f09a0
jmp 0x100f09a7
mov ebx, dword [esp + 0x5d0]
lea esi, [esp + 0x5c8]
cmp ebx, dword [esp + 0x5c8]
jne 0x100f09a7
jmp 0x100f09a0
cmp dword [esp + 0x10], 0
je 0x100f0ac9
push dword [esp + 8]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x728]
mov edi, dword [esp + 0x724]
mov edx, dword [esp + 0x5d0]
mov ecx, dword [esp + 0x5cc]
lea esi, [esp + 0x490]
mov dword [esp + 0x254], 0
mov dword [esp + 0x170], 5
lea eax, [eax + eax*4]
mov dword [esp + 0xac], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x38], edi
lea eax, [edi + eax*8]
mov dword [esp + 0x28], eax
lea eax, [edx + edx*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c8]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x720]
mov dword [esp + 0xb4], eax
jmp 0x100f0bc9
mov eax, 1
push edi
push esi
mov dword [esp + 0xc], eax
push eax
call fcn.10100490
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov eax, edi
mov ebx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, esi
mov dword [esp + 0x50], ebx
mov ebx, dword [esp]
mov dword [esp + 0x490], edx
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x498], ebx
mov dword [esp + 0x49c], esi
lea esi, [esp + 0x490]
mov dword [esp + 0x4a0], eax
mov edx, esi
mov dword [esp + 0x4a4], ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x4a8], edi
call fcn.100f3ca0
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x2c], eax
je 0x100f0f54
mov dword [esp + 0x50], ecx
jmp 0x100f0bf0
mov edx, dword [esp + 0x20]
add edi, 0x28
cmp edx, 6
jne 0x100f10ec
cmp edi, dword [esp + 0x28]
je 0x100f0f30
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp], esi
mov dword [esp + 0x40], edx
cmp eax, 0x80000000
mov dword [esp + 0x80], ecx
jne 0x100f0c80
mov eax, dword [edi]
mov ebx, dword [edi + 0x24]
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, esi
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
shl eax, 5
nop word cs:[eax + eax]
test eax, eax
je 0x100f0cb0
add eax, 0xffffffe0
cmp byte [ecx], 7
lea ecx, [ecx + 0x20]
je 0x100f0c50
mov dword [esp + 0x20], 6
mov ecx, dword [esp]
test ecx, ecx
jne 0x100f0e1d
jmp 0x100f0ee0
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
test eax, 0x7fffffff
mov dword [esp + 0x20], 6
jne 0x100f0d6d
mov ecx, dword [esp]
test ecx, ecx
jne 0x100f0e1d
jmp 0x100f0ee0
mov ecx, dword [esp]
test ecx, ecx
je 0x100f0daa
mov dword [esp + 0x2c], ebx
lea eax, [ecx*4]
mov ebx, ecx
xor ecx, ecx
lea edi, [eax + eax*2]
movzx eax, byte [0x10199148]
mov edx, edi
call fcn.100ea7d0
test eax, eax
je 0x100f21bb
mov esi, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x40]
add esi, 8
lea edi, [eax + 0x18]
mov eax, ebx
jmp 0x100f0d30
mov ebx, 1
mov edi, dword [esp + 4]
push edi
push ecx
push ebx
call fcn.10100490
add esp, 0xc
mov dword [esi - 8], edi
mov dword [esi - 4], ebx
mov dword [esi], edi
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
add esi, 0xc
add edi, 0x20
dec eax
je 0x100f0d8a
mov edx, dword [edi]
mov ecx, dword [edi - 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
test edx, edx
mov dword [esp + 4], edx
je 0x100f0d00
js 0x100f219c
mov dword [esp + 0x10], ecx
xor ecx, ecx
movzx eax, byte [0x10199148]
call fcn.100ea7d0
test eax, eax
je 0x100f21a1
mov ecx, dword [esp + 0x10]
mov ebx, eax
jmp 0x100f0d05
push dword [edi + 0x14]
push 0
push dword [0x101990e0]
call esi
mov ecx, dword [esp]
test ecx, ecx
jne 0x100f0e1d
jmp 0x100f0ee0
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x14], 0x80000000
jne 0x100f0dbc
mov dword [esp + 0x78], 0x80000000
xor ebx, ebx
jmp 0x100f0e00
mov dword [esp + 0x7c], 4
cmp dword [esp + 0x14], 0x80000000
je 0x100f0d9e
test ebx, ebx
je 0x100f0ddf
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, ebx
call fcn.100ea7d0
test eax, eax
jne 0x100f0de4
jmp 0x100f1933
mov eax, 1
push ebx
push dword [esp + 0x84]
mov dword [esp + 0x34], eax
push eax
call fcn.10100490
add esp, 0xc
mov ecx, dword [esp]
mov dword [esp + 0x78], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ecx
test ecx, ecx
je 0x100f0ee0
mov edi, dword [esp + 0x40]
jmp 0x100f0e4a
push esi
push 0
push dword [0x101990e0]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
mov ecx, ebx
nop word cs:[eax + eax]
add edi, 0x20
dec ecx
je 0x100f0ee0
cmp dword [edi + 0x10], 0
je 0x100f0e61
push dword [edi + 0x14]
push 0
push dword [0x101990e0]
mov ebx, ecx
call esi
mov ecx, ebx
movzx eax, byte [edi]
cmp eax, 7
je 0x100f0e40
cmp eax, 5
jb 0x100f0e40
jne 0x100f0e87
mov eax, dword [edi + 4]
lock dec dword [eax]
jne 0x100f0e40
mov ebx, ecx
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
call fcn.100154e0
jmp 0x100f0e34
mov esi, dword [edi + 4]
mov eax, dword [esi]
cmp eax, 3
ja 0x100f0eb9
mov eax, dword [eax*4 + 0x100f220c]
add eax, dword [esp + 0x30]
jmp eax
mov eax, dword [esi + 0x120]
mov ebx, ecx
lock dec dword [eax]
jne 0x100f0e23
mov ecx, dword [esi + 0x120]
mov edx, dword [esi + 0x124]
call fcn.100154e0
jmp 0x100f0e23
cmp dword [esp + 0x90], 0
je 0x100f0ef8
push dword [esp + 0x40]
push 0
push dword [0x101990e0]
call esi
test dword [esp + 0x14], 0x7fffffff
mov edi, dword [esp + 0x1c]
lea esi, [esp + 0x490]
je 0x100f0be0
push dword [esp + 0x80]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x100f0be0
cmp dword [esp + 0xb4], 0
je 0x100f0f4c
push dword [esp + 0x38]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x100f0f64
jmp 0x100f111a
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x24]
je 0x100f111a
cmp dword [ecx + 0x10], 0x80000000
lea eax, [ecx + 0x28]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], eax
jne 0x100f0f60
mov eax, dword [esp + 0x50]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], eax
shl eax, 5
mov ecx, ebx
nop word cs:[eax + eax]
nop
test eax, eax
je 0x100f0fc0
add eax, 0xffffffe0
cmp byte [ecx], 7
lea ecx, [ecx + 0x20]
je 0x100f0fa0
jmp 0x100f0f60
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], edi
test esi, esi
je 0x100f1090
lea eax, [esi*4]
xor ecx, ecx
lea edi, [eax + eax*2]
movzx eax, byte [0x10199148]
mov edx, edi
call fcn.100ea7d0
test eax, eax
je 0x100f21bb
mov ecx, esi
mov esi, eax
add ebx, 0x18
mov dword [esp], eax
add esi, 8
jmp 0x100f103c
mov ebx, 1
push edi
push eax
push ebx
call fcn.10100490
add esp, 0xc
mov dword [esi - 8], edi
mov dword [esi - 4], ebx
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp]
mov dword [esi], edi
add esi, 0xc
add ebx, 0x20
dec ecx
je 0x100f1080
mov edi, dword [ebx]
mov eax, dword [ebx - 4]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], ecx
test edi, edi
je 0x100f1010
mov dword [esp + 8], eax
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, edi
call fcn.100ea7d0
test eax, eax
je 0x100f21af
mov ebx, eax
mov eax, dword [esp + 8]
jmp 0x100f1015
mov esi, dword [esp + 0x40]
jmp 0x100f1095
mov eax, 4
mov ecx, dword [esp + 0x50]
mov dword [esp], eax
mov eax, 0x80000000
mov edi, 0
mov dword [esp + 0x38], 0
cmp dword [ecx + 0x1c], 0x80000000
je 0x100f0b64
mov edi, dword [ecx + 0x24]
mov esi, dword [ecx + 0x20]
test edi, edi
je 0x100f0b46
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, edi
call fcn.100ea7d0
test eax, eax
jne 0x100f0b4b
jmp 0x100f21af
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xc0]
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
jmp 0x100f0b73
mov eax, dword [esp + 0x170]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x17c]
push 0xd8
push eax
push esi
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x254]
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x2b4], 0
mov dword [esp + 0x170], 5
mov dword [esp + 4], eax
je 0x100f11f0
mov eax, dword [esp + 0x6c]
lea edi, [esp + 0x724]
lea esi, [eax + 0x28]
nop
mov eax, dword [esi - 0x28]
cmp eax, 6
je 0x100f11f0
lea ebx, [esi - 0x28]
mov dword [esp + 0x720], eax
lea ecx, [esp + 0x170]
lea edx, [esp + 0x720]
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x20], eax
movsd xmm0, qword [ebx + 0x1c]
movsd qword [edi + 0x18], xmm0
movsd xmm0, qword [ebx + 0x14]
movsd qword [edi + 0x10], xmm0
movq xmm0, qword [ebx + 4]
movsd xmm1, qword [ebx + 0xc]
movsd qword [edi + 8], xmm1
movq qword [edi], xmm0
call fcn.100f3650
add ebx, 0x28
add esi, 0x28
cmp ebx, dword [esp + 0x24]
jne 0x100f1190
jmp 0x100f121d
mov ebx, dword [esp + 0x24]
mov ecx, 0xcccccccd
mov eax, ebx
sub eax, esi
mul ecx
cmp ebx, esi
je 0x100f121d
mov edi, edx
shr edi, 5
nop dword [eax + eax]
mov ecx, esi
call fcn.100f04e0
add esi, 0x28
dec edi
jne 0x100f1210
cmp dword [esp + 0xb0], 0
je 0x100f1239
push dword [esp + 0x6c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
mov ebx, dword [esp + 0x178]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x720]
push 0x138
lea ecx, [esp + 0x180]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov esi, dword [esp + 0x2b4]
lea ecx, [esp + 0x858]
push 0xd8
lea eax, [esp + 0x494]
push eax
push ecx
call fcn.10100490
add esp, 0xc
mov dword [esp + 0x90], esi
mov ecx, dword fs:[0x2c]
cmp esi, 9
mov eax, dword [0x1019914c]
cmovae esi, ebx
mov eax, dword [ecx + eax*4]
mov dword [esp + 8], edi
mov dword [esp], ebx
cmp byte [eax + 0x60], 0
je 0x100f12e4
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
movq xmm0, qword [eax + 0x70]
movq xmm3, qword [eax + 0x68]
punpcklqdq xmm3, xmm0
jmp 0x100f132d
pxor xmm0, xmm0
movdqa xmmword [esp + 0x170], xmm0
push 0x10
lea eax, [esp + 0x174]
push eax
call dword [sym.imp.bcryptprimitives.dll_ProcessPrng]
mov eax, dword [0x1019914c]
mov ecx, dword fs:[0x2c]
movdqa xmm3, xmmword [esp + 0x170]
mov eax, dword [ecx + eax*4]
pshufd xmm0, xmm3, 0xee
mov byte [eax + 0x60], 1
movq qword [eax + 0x70], xmm0
pshufd xmm0, xmm3, 0x55
movsd xmm2, qword [0x1018e5a0]
movd ecx, xmm3
movd eax, xmm0
movsd xmm0, qword [0x1018e5a8]
mov ebx, eax
movsd qword [esp + 0xcf], xmm2
movsd qword [esp + 0xd7], xmm0
mov edx, dword [0x1019914c]
mov edi, dword fs:[0x2c]
mov edx, dword [edi + edx*4]
mov edi, ecx
movsd qword [esp + 0xef], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0xe7], xmm2
mov dword [esp + 0x718], 0
movdqa xmmword [esp + 0x40], xmm3
add edi, 1
movaps xmmword [esp + 0x6a0], xmm0
movaps xmmword [esp + 0x6b0], xmm0
movaps xmmword [esp + 0x6c0], xmm0
movaps xmmword [esp + 0x6d0], xmm0
movaps xmmword [esp + 0x6e0], xmm0
movaps xmmword [esp + 0x6f0], xmm0
movaps xmmword [esp + 0x700], xmm0
xorps xmm0, xmm0
adc ebx, 0
add ecx, 2
movsd qword [esp + 0x710], xmm0
movss xmm0, dword [esp + 0x90]
movd xmm1, edi
adc eax, 0
movd xmm2, ebx
test esi, esi
mov dword [edx + 0x6c], eax
mov eax, dword [esp + 0x34]
punpcklqdq xmm2, xmm1
mov dword [edx + 0x68], ecx
setne cl
shufps xmm2, xmm3, 0xe2
movzx eax, byte [eax + 0x34]
mov byte [esp + 0x1c], al
je 0x100f1461
mov al, 1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movaps xmmword [esp + 0x80], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm2
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
xor edi, edi
xor esi, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
movaps xmmword [esp + 0x90], xmm0
jmp 0x100f2013
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov byte [esp + 0x80], cl
mov ecx, dword [esp + 0x14]
cmp eax, 9
cmovae eax, edx
test eax, eax
jne 0x100f18d2
mov esi, dword [esp + 0x34]
mov eax, dword [esi]
mov dword [esp + 0x50], eax
cmp eax, 6
mov eax, dword [esp + 0xc]
je 0x100f18d6
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], eax
mov dword [esp + 0x178], edx
push 0xd8
lea eax, [esp + 0x85c]
push eax
lea eax, [esp + 0x184]
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 4]
lea ecx, [esp + 0x264]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x258], eax
mov eax, dword [esp]
mov dword [esp + 0x260], eax
push 0x138
lea eax, [esp + 0x724]
push eax
push ecx
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x90]
movsd xmm0, qword [esp + 0xc8]
movsd xmm1, qword [esp + 0xd0]
movdqa xmm2, xmmword [esp + 0x40]
movzx ecx, byte [esp + 0x1c]
cmp dword [esi + 0x10], 0x80000000
mov dword [esp + 0x39c], eax
mov dword [esp + 0x3a0], 0
mov dword [esp + 0x3a4], 0
mov byte [esp + 0x3a8], 0
movsd qword [esp + 0x3a9], xmm0
movsd xmm0, qword [esp + 0xd7]
movsd qword [esp + 0x3b1], xmm1
movsd xmm1, qword [esp + 0xe8]
movzx eax, byte [esp + 0x80]
movsd qword [esp + 0x3b8], xmm0
movsd xmm0, qword [esp + 0xe0]
movdqu xmmword [esp + 0x3c0], xmm2
mov dword [esp + 0x3d0], 0
mov dword [esp + 0x3d4], 0
mov byte [esp + 0x3d8], 0
movsd qword [esp + 0x3e1], xmm1
movsd qword [esp + 0x3d9], xmm0
movsd xmm0, qword [esp + 0xef]
movsd qword [esp + 0x3e8], xmm0
pshufd xmm0, xmm2, 0xee
mov dword [esp + 0x3f0], edi
mov dword [esp + 0x3f4], ebx
mov edi, esi
movq qword [esp + 0x3f8], xmm0
pxor xmm0, xmm0
movq qword [esp + 0x400], xmm0
movq qword [esp + 0x408], xmm0
movq qword [esp + 0x410], xmm0
movq qword [esp + 0x418], xmm0
movq qword [esp + 0x420], xmm0
movq qword [esp + 0x428], xmm0
movq qword [esp + 0x430], xmm0
movq qword [esp + 0x438], xmm0
movq qword [esp + 0x440], xmm0
movq qword [esp + 0x448], xmm0
movq qword [esp + 0x450], xmm0
movq qword [esp + 0x458], xmm0
movq qword [esp + 0x460], xmm0
movq qword [esp + 0x468], xmm0
movq qword [esp + 0x470], xmm0
movq qword [esp + 0x478], xmm0
mov byte [esp + 0x480], al
mov byte [esp + 0x481], cl
jne 0x100f190f
mov dword [esp + 0x1c], 0x80000000
mov ebx, dword [edi + 0xc]
test ebx, ebx
je 0x100f1962
cmp ebx, 0x4000000
jae 0x100f219c
mov eax, dword [edi + 8]
mov edx, ebx
xor ecx, ecx
mov edi, ebx
xor ebx, ebx
shl edx, 5
mov dword [esp + 8], eax
movzx eax, byte [0x10199148]
mov dword [esp + 0x40], edx
call fcn.100ea7d0
test eax, eax
je 0x100f21d6
mov edx, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], eax
jmp 0x100f1778
movsd xmm1, qword [esp + 0x5cf]
movsd xmm0, qword [esp + 0x5c8]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp]
dec edi
movsd qword [esp + 0x497], xmm1
movsd qword [esp + 0x490], xmm0
mov byte [edx + ebx], al
mov eax, dword [esp + 4]
movq xmm0, qword [esp + 0x490]
movsd xmm1, qword [esp + 0x497]
movq qword [edx + ebx + 1], xmm0
movsd qword [edx + ebx + 8], xmm1
mov dword [edx + ebx + 0x10], eax
mov dword [edx + ebx + 0x14], ecx
mov dword [edx + ebx + 0x18], eax
add ebx, 0x20
test edi, edi
je 0x100f18b3
cmp dword [esp + 0x40], ebx
je 0x100f18b3
mov eax, dword [esp + 8]
mov edx, dword [eax + ebx + 0x18]
mov ecx, dword [eax + ebx + 0x14]
test edx, edx
mov dword [esp + 4], edx
je 0x100f17c0
mov dword [esp], ecx
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100f21a1
mov edx, dword [esp + 4]
mov ecx, dword [esp]
mov esi, eax
jmp 0x100f17c5
mov esi, 1
mov eax, dword [esp + 8]
add eax, ebx
mov dword [esp + 0x10], eax
push edx
push ecx
mov dword [esp + 8], esi
push esi
call fcn.10100490
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [edx], 7
mov al, 7
je 0x100f1710
lea ecx, [esp + 0x490]
call fcn.100f4120
lea ecx, [esp + 0x491]
movzx eax, byte [esp + 0x490]
movq xmm0, qword [ecx]
movsd xmm1, qword [ecx + 7]
movq qword [esp + 0x5c8], xmm0
movsd qword [esp + 0x5cf], xmm1
jmp 0x100f1710
test esi, esi
je 0x100f06ab
mov edi, dword [esp + 0x3c]
lea ecx, [edi + esi]
jmp 0x100f185a
add edi, 2
cmp edx, ecx
cmovne edx, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edx, ecx
mov edi, edx
je 0x100f06ab
movzx ebx, byte [edi]
lea edx, [edi + 1]
test bl, bl
jns 0x100f1850
cmp bl, 0xe0
jb 0x100f1839
cmp bl, 0xed
jne 0x100f1892
cmp edx, ecx
je 0x100f06ab
lea edx, [edi + 2]
cmp edx, ecx
je 0x100f06ab
cmp byte [edi + 1], 0x9f
ja 0x100f1d28
add edi, 3
mov edx, edi
jmp 0x100f1850
add edi, 2
cmp edx, ecx
cmove edi, edx
xor edx, edx
cmp edi, ecx
setne dl
add edx, edi
cmp bl, 0xf0
jb 0x100f1850
xor ebx, ebx
cmp edx, ecx
setne bl
add edx, ebx
jmp 0x100f1850
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
cmp dword [edi + 0x1c], 0x80000000
jne 0x100f1974
mov eax, 0x80000000
jmp 0x100f19c0
mov eax, dword [esp + 0xc]
movaps xmmword [esp + 0x80], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm2
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
xor edi, edi
xor esi, esi
mov dword [esp + 0x30], 0
movaps xmmword [esp + 0x90], xmm0
jmp 0x100f2013
mov ebx, dword [edi + 0x18]
mov esi, dword [edi + 0x14]
test ebx, ebx
je 0x100f193f
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, ebx
call fcn.100ea7d0
test eax, eax
jne 0x100f1944
mov ecx, 1
mov edx, ebx
call fcn.1010cb60
mov eax, 1
mov dword [esp + 0x1c], ebx
push ebx
push esi
mov dword [esp + 0x28], eax
push eax
call fcn.10100490
add esp, 0xc
mov ebx, dword [edi + 0xc]
test ebx, ebx
jne 0x100f16c5
mov edx, 8
cmp dword [edi + 0x1c], 0x80000000
je 0x100f18c8
mov esi, dword [edi + 0x24]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xc], edx
test esi, esi
je 0x100f19a6
js 0x100f219c
movzx eax, byte [0x10199148]
mov edi, ecx
xor ecx, ecx
mov edx, esi
call fcn.100ea7d0
test eax, eax
je 0x100f21e4
mov ecx, edi
jmp 0x100f19ab
mov eax, 1
push esi
push ecx
push eax
mov edi, esi
mov esi, eax
call fcn.10100490
mov eax, edi
add esp, 0xc
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp byte [esp + 0x481], 0
mov dword [esp + 0x10], esi
mov dword [esp], eax
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x160], edi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], edx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], eax
mov dword [esp + 0x148], ecx
je 0x100f1a34
lea esi, [esp + 0x3a9]
cmp edi, 0x80000000
je 0x100f1a50
jmp 0x100f1a73
mov ecx, edx
mov esi, edx
mov edx, ebx
call fcn.100f3570
mov edx, esi
lea esi, [esp + 0x3a9]
cmp edi, 0x80000000
jne 0x100f1a73
mov eax, ebx
mov ecx, edx
shl eax, 5
nop word [eax + eax]
test eax, eax
je 0x100f1c26
add eax, 0xffffffe0
cmp byte [ecx], 7
lea ecx, [ecx + 0x20]
je 0x100f1a60
lea ecx, [esp + 0x258]
lea edx, [esp + 0x148]
mov dword [esp + 0x12c], 6
mov byte [esp + 0x480], 1
call fcn.100f3650
mov eax, dword [esp + 0x170]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x5c8]
push 0xd8
lea ecx, [esp + 0x180]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x260]
mov dword [esp], eax
push 0x138
lea eax, [esp + 0x268]
push eax
lea ebx, [esp + 0x498]
push ebx
call fcn.10100490
add esp, 0xc
movsd xmm1, qword [esi + 8]
mov eax, dword [esp + 0x3a4]
movsd xmm2, qword [esi]
movsd xmm0, qword [esp + 0x39c]
movsd xmm3, qword [esi + 0x30]
lea edi, [esp + 0x930]
mov ecx, 0x1f
mov edx, esi
movsd qword [esp + 0x118], xmm1
movsd xmm1, qword [esi + 0xf]
mov dword [esp + 0x38], eax
movzx eax, byte [esp + 0x3a8]
movsd qword [esp + 0x110], xmm2
movups xmm2, xmmword [esp + 0x3c0]
movaps xmmword [esp + 0x80], xmm0
movsd qword [esp + 0xf8], xmm3
movsd qword [esp + 0x11f], xmm1
movsd xmm1, qword [esp + 0x3d0]
mov dword [esp + 0x2c], eax
movaps xmmword [esp + 0x40], xmm2
movzx eax, byte [esp + 0x3d8]
movsd xmm2, qword [esi + 0x3f]
movaps xmmword [esp + 0x90], xmm1
movsd xmm1, qword [esi + 0x38]
mov dword [esp + 0x28], eax
lea esi, [esp + 0x400]
movsd qword [esp + 0x100], xmm1
movups xmm1, xmmword [esp + 0x3f0]
movsd qword [esp + 0x107], xmm2
movaps xmmword [esp + 0x50], xmm1
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx + 0xd9]
movzx ecx, byte [esp + 0x481]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x47c]
mov byte [esp + 0x1c], cl
mov dword [esp + 0x24], eax
movzx eax, word [edx + 0xdd]
mov word [esp + 0x74], ax
movzx eax, byte [esp + 0x480]
mov dword [esp + 0x30], eax
jmp 0x100f1f4b
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x100f1cd4
lea eax, [ebx*4]
mov dword [esp + 0xc], edx
xor ecx, ecx
lea esi, [eax + eax*2]
movzx eax, byte [0x10199148]
mov edx, esi
call fcn.100ea7d0
test eax, eax
je 0x100f21f0
mov edi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc]
mov ecx, ebx
add edi, 8
add eax, 0x18
jmp 0x100f1c99
mov esi, 1
push ebx
push edx
push esi
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [edi - 8], ebx
mov dword [edi - 4], esi
mov dword [edi], ebx
add edi, 0xc
add eax, 0x20
dec ecx
je 0x100f1cdc
mov ebx, dword [eax]
mov edx, dword [eax - 4]
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
test ebx, ebx
je 0x100f1c70
mov dword [esp + 8], edx
js 0x100f219c
movzx eax, byte [0x10199148]
xor ecx, ecx
mov edx, ebx
call fcn.100ea7d0
test eax, eax
je 0x100f1933
mov edx, dword [esp + 8]
mov esi, eax
jmp 0x100f1c75
mov dword [esp + 0x40], 4
mov ebx, dword [esp]
mov eax, dword [esp + 0x10]
cmp ebx, 0x80000000
jne 0x100f1cf6
mov esi, dword [esp + 0x14]
mov ebx, 0x80000000
jmp 0x100f1d66
test ebx, ebx
je 0x100f1d52
js 0x100f219c
movzx eax, byte [0x10199148]
mov edx, dword [esp]
xor ecx, ecx
call fcn.100ea7d0
mov esi, dword [esp + 0x14]
test eax, eax
je 0x100f21fc
mov edi, eax
mov ebx, dword [esp]
mov eax, dword [esp + 0x10]
jmp 0x100f1d5b
xor esi, esi
test eax, 0x7fffffff
mov byte [esp + 0x1b], 1
je 0x100f1d48
push dword [esp + 0x3c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, 1
jmp 0x100f06b6
mov esi, dword [esp + 0x14]
mov edi, 1
push ebx
push eax
push edi
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], ebx
call fcn.100f3ca0
mov eax, dword [esp + 0x170]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x5c8]
push 0xd8
lea ecx, [esp + 0x180]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 0x254]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x260]
mov dword [esp], eax
push 0x138
lea eax, [esp + 0x268]
push eax
lea ebx, [esp + 0x498]
push ebx
call fcn.10100490
add esp, 0xc
lea edx, [esp + 0x3a9]
mov eax, dword [esp + 0x3a4]
movsd xmm0, qword [esp + 0x39c]
lea edi, [esp + 0x930]
mov ecx, 0x1f
lea esi, [esp + 0x400]
movsd xmm1, qword [edx + 8]
movsd xmm2, qword [edx]
movsd xmm3, qword [edx + 0x30]
mov dword [esp + 0x38], eax
movzx eax, byte [esp + 0x3a8]
movaps xmmword [esp + 0x80], xmm0
movsd qword [esp + 0x118], xmm1
movsd xmm1, qword [edx + 0xf]
movsd qword [esp + 0x110], xmm2
movups xmm2, xmmword [esp + 0x3c0]
movsd qword [esp + 0xf8], xmm3
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x3d8]
movsd qword [esp + 0x11f], xmm1
movsd xmm1, qword [esp + 0x3d0]
movaps xmmword [esp + 0x40], xmm2
movsd xmm2, qword [edx + 0x3f]
mov dword [esp + 0x28], eax
movaps xmmword [esp + 0x90], xmm1
movsd xmm1, qword [edx + 0x38]
movsd qword [esp + 0x100], xmm1
movups xmm1, xmmword [esp + 0x3f0]
movsd qword [esp + 0x107], xmm2
movaps xmmword [esp + 0x50], xmm1
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx + 0xd9]
movzx ecx, byte [esp + 0x481]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x47c]
mov byte [esp + 0x1c], cl
lea ecx, [esp + 0x148]
mov dword [esp + 0x24], eax
movzx eax, word [edx + 0xdd]
mov word [esp + 0x74], ax
movzx eax, byte [esp + 0x480]
mov dword [esp + 0x30], eax
call fcn.100f04e0
lea eax, [esp + 0x5c8]
push 0xd8
push eax
lea eax, [esp + 0x860]
push eax
call fcn.10100490
add esp, 0xc
push 0x138
push ebx
lea eax, [esp + 0x728]
push eax
call fcn.10100490
add esp, 0xc
movsd xmm1, qword [esp + 0x118]
movsd xmm0, qword [esp + 0x110]
movsd xmm2, qword [esp + 0xf8]
lea edi, [esp + 0x6a0]
lea esi, [esp + 0x930]
mov ecx, 0x1f
movsd qword [esp + 0xd0], xmm1
movsd xmm1, qword [esp + 0x11f]
movsd qword [esp + 0xc8], xmm0
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xd7], xmm1
movsd xmm1, qword [esp + 0x100]
movsd qword [esp + 0xe8], xmm1
movq xmm1, qword [esp + 0x107]
movq qword [esp + 0xef], xmm1
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0xa8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
lea eax, [ebx + 0xc]
push 0xd8
lea ecx, [esp + 0x85c]
push ecx
push eax
call fcn.10100490
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xec], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0xe8], eax
mov eax, dword [esp]
mov dword [ebx + 0xf0], eax
lea eax, [ebx + 0xf4]
push 0x138
lea ecx, [esp + 0x724]
push ecx
push eax
call fcn.10100490
add esp, 0xc
movaps xmm0, xmmword [esp + 0x80]
movsd xmm1, qword [esp + 0xd0]
mov eax, edi
movsd xmm2, qword [esp + 0xc8]
movsd xmm3, qword [esp + 0xe0]
lea edi, [ebx + 0x290]
mov ecx, 0x1f
movlps qword [ebx + 0x22c], xmm0
mov dword [ebx + 0x234], esi
mov byte [ebx + 0x238], al
movsd qword [ebx + 0x241], xmm1
movsd xmm1, qword [esp + 0xd7]
movsd qword [ebx + 0x239], xmm2
movaps xmm2, xmmword [esp + 0x40]
mov eax, dword [esp + 0x28]
lea esi, [esp + 0x6a0]
movsd qword [ebx + 0x248], xmm1
movaps xmm1, xmmword [esp + 0x90]
movups xmmword [ebx + 0x250], xmm2
movsd xmm2, qword [esp + 0xef]
movlps qword [ebx + 0x260], xmm1
movsd xmm1, qword [esp + 0xe8]
mov byte [ebx + 0x268], al
movsd qword [ebx + 0x269], xmm3
movsd qword [ebx + 0x271], xmm1
movaps xmm1, xmmword [esp + 0x50]
movsd qword [ebx + 0x278], xmm2
movups xmmword [ebx + 0x280], xmm1
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x1b], 0
mov edx, dword [esp + 0x70]
movzx ecx, word [esp + 0x74]
mov dword [ebx + 0x30c], eax
mov eax, dword [esp + 0x30]
mov byte [ebx + 0x310], al
movzx eax, byte [esp + 0x1c]
mov byte [ebx + 0x311], al
mov dword [ebx + 0x312], edx
mov word [ebx + 0x316], cx
jne 0x100f2194
push dword [esp + 0x3c]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.10001070
mov edx, dword [esp + 4]
mov ecx, 1
call fcn.1010cb60
mov ecx, 1
mov edx, edi
call fcn.1010cb60
mov ecx, 4
mov edx, edi
call fcn.1010cb60
mov ecx, 4
mov edx, 0xa0
call fcn.1010cb60
mov edx, dword [esp + 0x40]
mov ecx, 8
call fcn.1010cb60
mov ecx, 1
mov edx, esi
call fcn.1010cb60
mov ecx, 4
mov edx, esi
call fcn.1010cb60
mov edx, dword [esp]
mov ecx, 1
call fcn.1010cb60
nop dword [eax]
arpl word [eax], cx
add byte [eax], al
arpl word [eax], cx
add byte [eax], al
arpl word [eax], cx
add byte [eax], al
arpl word [eax], cx
add byte [eax], al
int3