Function at 0x100039b7
Capabilities:
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov dword [esp], eax
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.10001f02
mov dword [esp + 8], edx
mov ebx, eax
mov ecx, dword fs:[0x2c]
mov eax, dword [0x100106dc]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x1598], 0
jne 0x10003d04
push esi
push ebp
call fcn.10001f02
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov ecx, dword fs:[0x2c]
mov eax, dword [0x100106dc]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x1598], 0
jne 0x10003d04
push edi
push dword [esp + 4]
call fcn.10001f02
mov dword [esp + 0x14], edx
mov edi, eax
mov ecx, dword fs:[0x2c]
mov eax, dword [0x100106dc]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x1598], 0
jne 0x10003d04
mov eax, dword [esp + 0xc]
lea eax, [ebx + eax]
lea ecx, [edi + eax + 0x1f]
call fcn.100053a0
lea ebp, [eax + 0x14]
movsd xmm0, qword [0x1000e644]
movsd xmm2, qword [0x1000e64c]
mov esi, eax
movsd xmm1, qword [0x1000e651]
mov dword [esp], edx
mov ecx, ebp
xor ecx, esi
cmovs ecx, ebp
test ecx, ecx
movsd qword [edx + eax + 0xc], xmm2
movsd qword [edx + eax + 4], xmm0
movsd qword [edx + eax + 0x11], xmm1
jns 0x10003aab
call fcn.1000328d
mov ebp, esi
test ebx, ebx
mov dword [esp + 0x10], edi
jle 0x10003b1c
lea eax, [ebx + 1]
mov ecx, eax
xor ecx, ebx
cmovs ecx, eax
test ecx, ecx
js 0x10003afc
test eax, eax
js 0x10003b03
mov ecx, dword [esp]
mov edx, dword [esp + 8]
lea ecx, [ecx + ebp + 4]
lea edx, [edx + 4]
push eax
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea edi, [ebp + ebx]
mov eax, edi
xor ebx, edi
xor eax, ebp
test eax, eax
cmovns ebx, eax
test ebx, ebx
mov ebx, dword [esp + 4]
jns 0x10003b22
call fcn.1000328d
jmp 0x10003b20
call fcn.1000328d
jmp 0x10003b1c
mov ecx, eax
xor edx, edx
sar ecx, 0x1f
push edx
push 0x7fffffff
push edx
push edx
push ecx
push eax
call fcn.100039b7
add esp, 0x18
mov ebx, dword [esp + 4]
mov edi, ebp
lea esi, [edi + 7]
mov eax, dword [esp]
mov ecx, esi
xor ecx, edi
cmovs ecx, esi
test ecx, ecx
mov dword [eax + edi + 8], 0x206e69
mov dword [eax + edi + 4], 0x746f6e20
jns 0x10003b4a
call fcn.1000328d
mov esi, edi
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
test edi, edi
jle 0x10003bb1
lea eax, [edi + 1]
mov ecx, eax
xor ecx, edi
cmovs ecx, eax
test ecx, ecx
js 0x10003b91
test eax, eax
js 0x10003b98
mov ecx, dword [esp]
lea edx, [ebx + 4]
lea ecx, [ecx + esi + 4]
push eax
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, edi
lea edi, [esi + edi]
mov eax, edi
xor ecx, edi
xor eax, esi
test eax, eax
cmovns ecx, eax
test ecx, ecx
jns 0x10003bb3
call fcn.1000328d
jmp 0x10003bb1
mov ecx, eax
xor edx, edx
sar ecx, 0x1f
push edx
push 0x7fffffff
push edx
push edx
push ecx
push eax
call fcn.100039b7
add esp, 0x18
mov edi, esi
mov al, byte [0x1000e664]
mov ecx, dword [esp]
mov edx, dword [0x1000e660]
lea esi, [edi + 4]
mov byte [ecx + edi + 8], al
mov dword [ecx + edi + 4], edx
mov ecx, esi
xor ecx, edi
cmovs ecx, esi
test ecx, ecx
jns 0x10003bde
call fcn.1000328d
mov esi, edi
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x10003c41
lea eax, [edi + 1]
mov ecx, eax
xor ecx, edi
cmovs ecx, eax
test ecx, ecx
js 0x10003c21
test eax, eax
js 0x10003c28
mov ecx, dword [esp]
lea edx, [ebp + 4]
lea ecx, [ecx + esi + 4]
push eax
push edx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, edi
lea edi, [esi + edi]
mov eax, edi
xor ecx, edi
xor eax, esi
test eax, eax
cmovns ecx, eax
test ecx, ecx
jns 0x10003c43
call fcn.1000328d
jmp 0x10003c41
mov ecx, eax
xor edx, edx
sar ecx, 0x1f
push edx
push 0x7fffffff
push edx
push edx
push ecx
push eax
call fcn.100039b7
add esp, 0x18
mov edi, esi
mov ecx, 0x20
mov edx, 4
call fcn.10005ab2
mov ecx, dword [0x1000edac]
mov edx, str.RangeDefect
mov dword [eax], ecx
mov ecx, dword [esp]
mov dword [eax + 8], str.RangeDefect
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ecx
mov ecx, eax
push 0x35
push str.fatal.nim
push str.sysFatal
call fcn.1000511a
test ebp, ebp
je 0x10003ca8
test byte [ebp + 3], 0x40
jne 0x10003ca8
mov eax, dword [0x100106dc]
mov ecx, dword fs:[0x2c]
mov edx, ebp
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 4]
call fcn.10003745
test ebx, ebx
je 0x10003cce
test byte [ebx + 3], 0x40
jne 0x10003cce
mov eax, dword [0x100106dc]
mov ecx, dword fs:[0x2c]
mov edx, ebx
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 4]
call fcn.10003745
cmp dword [esp + 8], 0
je 0x10003d04
mov eax, dword [esp + 8]
test byte [eax + 3], 0x40
jne 0x10003d04
mov eax, dword [0x100106dc]
mov ecx, dword fs:[0x2c]
mov edx, dword [esp + 8]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 4]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.10003745
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret