Function at 0x10003857
Capabilities:
Terminate process

Disassembly:
mov eax, dword [edx + 4]
sub dword [ecx + 0x1074], eax
cmp dword [edx + 4], 0x3f000001
jl 0x100025fb
jmp 0x10002779
push ecx
push ebx
push ebp
push esi
mov esi, edx
mov ebx, ecx
push edi
mov eax, dword [esi + 4]
lea ebp, [ebx + 0x1080]
add dword [ebx + 0x1070], eax
and dword [esi], 0xfffffffe
cmp dword [esi], 0
je 0x1000268e
mov edi, esi
mov ecx, ebp
sub edi, dword [esi]
mov edx, edi
sar edx, 0xc
call fcn.100022ec
test al, al
je 0x1000268e
mov al, byte [edi]
not al
and al, 1
je 0x1000268e
mov ecx, 0xfd0
cmp dword [edi + 4], ecx
setg al
jle 0x1000264e
cmp dword [edi + 4], 0x3f000000
setl al
test al, al
je 0x1000268e
mov edx, edi
mov ecx, ebx
call fcn.10003b0a
mov eax, dword [esi + 4]
mov ecx, ebp
add dword [edi + 4], eax
sar esi, 0xc
mov edx, esi
call fcn.100025cf
mov eax, 0x3f000000
mov esi, edi
cmp dword [edi + 4], eax
jle 0x1000268e
push eax
mov edx, edi
mov ecx, ebx
call fcn.1000444c
mov edx, edi
mov ecx, ebx
mov esi, eax
call fcn.10001a35
mov edi, dword [esi + 4]
lea ecx, [ebx + 0x1080]
add edi, esi
mov ebp, edi
sar ebp, 0xc
mov edx, ebp
call fcn.100022ec
test al, al
je 0x10002705
mov al, byte [edi]
not al
and al, 1
je 0x10002705
mov ecx, 0xfd0
cmp dword [edi + 4], ecx
setg al
jle 0x100026c8
cmp dword [esi + 4], 0x3f000000
setl al
test al, al
je 0x10002705
mov edx, edi
mov ecx, ebx
call fcn.10003b0a
mov eax, dword [edi + 4]
lea ecx, [ebx + 0x1080]
add dword [esi + 4], eax
mov edx, ebp
call fcn.100025cf
mov eax, 0x3f000000
cmp dword [esi + 4], eax
jle 0x10002705
push eax
mov edx, esi
mov ecx, ebx
call fcn.1000444c
mov edx, eax
mov ecx, ebx
call fcn.10001a35
pop edi
mov edx, esi
mov ecx, ebx
pop esi
pop ebp
pop ebx
add esp, 4
jmp fcn.10001a35
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
sar edx, 0xc
mov esi, dword [ebx + 4]
lea ecx, [edi + 0x1080]
call fcn.100025cf
mov ecx, dword [edi + 0x1068]
mov eax, dword [edi + 0x106c]
cmp eax, ecx
push 0x8000
cmovl eax, ecx
sub ecx, esi
push 0
push ebx
mov dword [edi + 0x106c], eax
mov dword [edi + 0x1068], ecx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
pop edi
pop esi
pop ebx
test eax, eax
je 0x100027c6
ret
push str.virtualFree_failing_
call fcn.10004ba0
pop ecx
push 1
call fcn.1000d70a
int3
push ebx
push ebp
push esi
mov esi, edx
mov ebp, 0xfd0
and esi, 0xfffff000
push edi
mov edi, ecx
mov ebx, dword [esi + 4]
cmp ebx, ebp
jle 0x1000388c
cmp dword [esi + 8], edi
je 0x10003881
push esi
push dword [esi + 8]
call fcn.100047fb
jmp 0x10003898
pop edi
mov edx, esi
pop esi
pop ebp
pop ebx
jmp 0x10002361
cmp dword [esi + 8], edi
je 0x1000389c
push edx
push esi
call fcn.10004868
pop ecx
pop ecx
jmp 0x10003907
sub dword [edi + 0x1074], ebx
mov eax, dword [esi + 0x14]
mov dword [edx], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x14], edx
cmp eax, ebx
jl 0x100038e6
lea ecx, [eax + ebx]
mov dword [esi + 0x18], ecx
cmp ecx, ebp
jne 0x10003907
mov eax, ebx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push esi
lea eax, [edi + eax*4]
push eax
call fcn.100049fd
pop ecx
pop ecx
mov ecx, edi
mov dword [esi + 4], 0x1000
pop edi
mov edx, esi
pop esi
pop ebp
pop ebx
jmp 0x100025fb
mov eax, ebx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ecx, dword [edi + eax*4]
mov dword [esi + 0xc], ecx
mov ecx, dword [edi + eax*4]
test ecx, ecx
je 0x10003901
mov dword [ecx + 0x10], esi
mov dword [edi + eax*4], esi
add dword [esi + 0x18], ebx
pop edi
pop esi
pop ebp
pop ebx
ret