Function at 0x10004150
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push ebx
push esi
push edi
lea edi, [ebp - 0x15c]
mov ecx, 0x57
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 0x118], 0
cmp dword [ebp + 8], 0
je 0x100046ef
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 8], eax
jmp 0x1000419e
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x100046bc
mov eax, dword [ebp - 8]
add eax, 0xa
push eax
call fcn.1000101e
add esp, 4
test eax, eax
je 0x100041bd
jmp 0x10004196
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0
je 0x100042a6
cmp dword [0x104c0400], 2
jle 0x10004205
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x108]
push edx
push 0x4060400
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x118]
mov edx, dword [ecx + 0x1c]
push edx
push 0xe8050400
push 0xa84c0400
call fcn.1000e1f0
add esp, 0x14
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 8]
add edx, 0xa
push edx
call fcn.100010af
add esp, 8
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 8]
add edx, 0x12
push edx
call fcn.100010af
add esp, 8
cmp dword [0x34050500], 0
je 0x100042a1
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 0x21]
and ecx, 2
test ecx, ecx
jne 0x100042a1
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x134]
cmp edx, dword [eax + 0x134]
jle 0x10004270
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x134]
mov dword [ebp - 0x11c], ecx
jmp 0x10004282
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x134]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x11c]
mov dword [eax + 0x134], ecx
mov edx, dword [ebp - 8]
mov dword [edx + 0x134], 0x80000000
jmp 0x10004196
push 0x38030400
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x108]
push ecx
call fcn.10010cd0
add esp, 8
test eax, eax
je 0x100043d0
push 0xe4050400
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x108]
push eax
call fcn.10010cd0
add esp, 8
test eax, eax
je 0x100043d0
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx + 0x21]
and edx, 2
test edx, edx
je 0x100043d0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 4], ecx
mov edx, 1
test edx, edx
je 0x10004348
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x14]
cmp ecx, dword [ebp - 8]
jne 0x10004315
jmp 0x10004348
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x10004346
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x108]
push edx
push 0xa8050400
push 0xa84c0400
call fcn.1000e1f0
add esp, 0xc
push 1
call fcn.1000e030
jmp 0x100042ff
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 8]
add edx, 0xa
push edx
call fcn.100010af
add esp, 8
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x2c]
mov dword [eax + 0xfc], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x28]
add ecx, 0x7ff
and ecx, 0xfffff800
mov edx, dword [ebp - 8]
mov dword [edx + 0x100], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [0xa0ea0400]
add ecx, dword [eax + 0x100]
mov dword [0xa0ea0400], ecx
mov edx, dword [ebp - 8]
push edx
call fcn.100010ff
add esp, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x28]
add ecx, 0x7ff
and ecx, 0xfffff800
push ecx
mov edx, dword [ebp - 8]
add edx, 0x12
push edx
call fcn.100010af
add esp, 8
jmp 0x10004196
push 0x38030400
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x108]
push ecx
call fcn.10010cd0
add esp, 8
test eax, eax
jne 0x1000446f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 8]
add ecx, 0xa
push ecx
call fcn.100010af
add esp, 8
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0xfc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
add eax, 0x7ff
and eax, 0xfffff800
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x100], eax
mov edx, dword [ebp - 8]
push edx
call fcn.100010ff
add esp, 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2c]
mov dword [eax + 0xfc], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
add ecx, 0x7ff
and ecx, 0xfffff800
push ecx
mov edx, dword [ebp - 8]
add edx, 0x12
push edx
call fcn.100010af
add esp, 8
jmp 0x10004196
push 0xe4050400
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x108]
push ecx
call fcn.10010cd0
add esp, 8
test eax, eax
jne 0x1000453a
mov edx, dword [ebp + 8]
cmp edx, dword [0x88040500]
jne 0x100044ad
mov eax, dword [0x88040500]
mov ecx, dword [0xa0ea0400]
add ecx, dword [eax + 0x28]
mov dword [0xa0ea0400], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 8]
add edx, 0xa
push edx
call fcn.100010af
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0xfc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x28]
add eax, 0x7ff
and eax, 0xfffff800
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x100], eax
mov edx, dword [ebp - 8]
push edx
call fcn.100010ff
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0xfc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x28]
add eax, 0x7ff
and eax, 0xfffff800
push eax
mov ecx, dword [ebp - 8]
add ecx, 0x12
push ecx
call fcn.100010af
add esp, 8
jmp 0x10004196
mov edx, dword [ebp - 8]
cmp dword [edx + 0x100], 0
je 0x100046a2
push 0x20
call fcn.10001087
add esp, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x18], 0
cmp dword [0xb0ea0400], 0
je 0x10004588
mov eax, dword [0xb0ea0400]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0x10]
mov dword [0xb0ea0400], edx
jmp 0x10004599
mov eax, dword [ebp - 0x10]
mov dword [0xacea0400], eax
mov ecx, dword [ebp - 0x10]
mov dword [0xb0ea0400], ecx
mov edx, dword [ebp - 0x10]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x110]
push ecx
lea edx, [ebp - 0x114]
push edx
call fcn.10012130
add esp, 8
lea eax, [ebp - 0x114]
push eax
call fcn.10025b80
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x10]
mov dword [edx], 0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x100]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x8c040500]
mov dword [eax + 8], ecx
mov edx, dword [0x8c040500]
push edx
mov eax, dword [ebp - 8]
add eax, 0xa
push eax
call fcn.100010af
add esp, 8
mov ecx, dword [ebp - 8]
mov edx, dword [0x8c040500]
mov dword [ecx + 0xfc], edx
mov eax, dword [ebp - 8]
push eax
call fcn.100010ff
add esp, 4
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x100]
cdq
and edx, 0x7ff
add eax, edx
sar eax, 0xb
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x100]
and ecx, 0x800007ff
jns 0x10004654
dec ecx
or ecx, 0xfffff800
inc ecx
neg ecx
sbb ecx, ecx
neg ecx
add ecx, dword [0x8c040500]
add ecx, eax
mov dword [0x8c040500], ecx
cmp dword [0x104c0400], 2
jle 0x1000469d
lea edx, [ebp - 0x114]
push edx
mov eax, dword [0x8c040500]
sub eax, 1
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0xfc]
push edx
push 0x9c050400
push 0xa84c0400
call fcn.1000e1f0
add esp, 0x14
jmp 0x10004196
mov eax, dword [0x8c040500]
push eax
mov ecx, dword [ebp - 8]
add ecx, 0xa
push ecx
call fcn.100010af
add esp, 8
jmp 0x10004196
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
je 0x100046e2
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.10004150
add esp, 4
test eax, eax
je 0x100046e2
mov dword [ebp - 0x118], 1
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp + 8], eax
jmp 0x10004178
mov eax, dword [ebp - 0x118]
pop edi
pop esi
pop ebx
add esp, 0x15c
cmp ebp, esp
call fcn.1000dd50
mov esp, ebp
pop ebp
ret