Function at 0x5612d0
Capabilities:
Terminate process

Disassembly:
sub esp, 0x20
mov eax, dword [0x6687b8]
xor eax, esp
mov dword [esp + 0x1c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
mov edx, dword [ebp]
xor eax, eax
cmp byte [ebp + 4], 8
push esi
setne al
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov byte [esp + 0x24], 0x73
mov byte [esp + 0x25], 0x50
mov byte [esp + 0x26], 0x4c
lea eax, [eax*4 + 6]
mov dword [esp + 0x10], eax
imul edi, eax
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x2b], 0x54
mov byte [esp + 0x2c], 0
call fcn.00561c70
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x561506
lea ecx, [ebx + edi + 2]
push ecx
lea ecx, [esp + 0x28]
call fcn.00560210
add esp, 4
test esi, esi
lea edi, [ebx + 1]
je 0x56139c
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x561375
test edi, edi
jbe 0x561375
mov eax, dword [esi + 0x50]
test eax, eax
je 0x5613e6
push edi
push ebx
push esi
call eax
add esp, 0xc
mov edx, edi
mov ecx, ebx
call fcn.0054afb0
test esi, esi
je 0x56139c
lea edi, [ebp + 4]
test edi, edi
je 0x56139c
mov eax, dword [esi + 0x50]
test eax, eax
je 0x5613e6
push 1
push edi
push esi
call eax
add esp, 0xc
mov edx, 1
mov ecx, edi
call fcn.0054afb0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [edi + edx*2]
cmp edi, eax
jae 0x561487
cmp byte [ebp + 4], 8
jne 0x5613f2
movzx ecx, byte [edi]
mov byte [esp + 0x18], cl
mov dl, byte [edi + 2]
mov byte [esp + 0x19], dl
mov al, byte [edi + 4]
mov byte [esp + 0x1a], al
movzx ecx, byte [edi + 6]
mov byte [esp + 0x1b], cl
movzx eax, word [edi + 8]
mov edx, eax
shr edx, 8
mov byte [esp + 0x1c], dl
mov byte [esp + 0x1d], al
jmp 0x561446
mov edi, str.Call_to_NULL_write_function
mov eax, esi
jmp fcn.0054c480
movzx eax, word [edi]
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], al
movzx eax, word [edi + 2]
mov edx, eax
shr edx, 8
mov byte [esp + 0x1a], dl
mov byte [esp + 0x1b], al
movzx eax, word [edi + 4]
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], al
movzx eax, word [edi + 6]
mov edx, eax
shr edx, 8
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1f], al
movzx eax, word [edi + 8]
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], al
test esi, esi
je 0x561470
mov ebx, dword [esp + 0x10]
test ebx, ebx
jbe 0x561470
mov eax, dword [esi + 0x50]
test eax, eax
je 0x5613e6
push ebx
lea edx, [esp + 0x1c]
push edx
push esi
call eax
add esp, 0xc
mov edx, ebx
lea ecx, [esp + 0x18]
call fcn.0054afb0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
add edi, 0xa
lea edx, [ecx + eax*2]
cmp edi, edx
jb 0x5613b0
test esi, esi
je 0x561506
mov eax, dword [esi + 0x110]
mov ecx, eax
shr ecx, 0x18
mov byte [esp + 0x10], cl
mov edx, eax
mov ecx, eax
mov byte [esp + 0x13], al
mov eax, dword [esi + 0x50]
shr edx, 0x10
shr ecx, 8
test eax, eax
mov dword [esi + 0x2ac], 0x82
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], cl
je 0x5613e6
push 4
lea edx, [esp + 0x14]
push edx
push esi
call eax
mov ecx, dword [esp + 0x20]
add esp, 0xc
test ecx, ecx
je 0x561506
mov eax, dword [esi + 0x240]
test eax, eax
push ecx
je 0x5614fe
push esi
call eax
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.005d28b3
add esp, 0x20
ret
call fcn.005d27e0
add esp, 4
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005d28b3
add esp, 0x20
ret