Function at 0x421f10
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1440
call fcn.004400d0
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
xor edi, edi
cmp ecx, edi
jle 0x421f50
lea esi, [ebp - 0xc2c]
sub esi, edx
mov ebx, ecx
mov eax, dword [edx]
cmp eax, edi
jne 0x421f3e
mov eax, 1
shl eax, 8
mov dword [esi + edx], eax
add edx, 4
sub ebx, 1
jne 0x421f33
lea esp, [esp]
xor edx, edx
cmp ecx, 1
mov ebx, ecx
mov dword [ebp - 0x420], edi
mov dword [ebp - 0xc30], edi
mov dword [ebp - 0x1440], 0xfffffffe
mov dword [ebp - 4], 1
jl 0x4221e2
or eax, 0xffffffff
lea edi, [ebp - 0x143c]
rep stosd dword es:[edi], eax
jmp 0x421f90
mov eax, dword [ebp - 4]
add edx, 1
mov dword [ebp + edx*4 - 0x420], eax
mov dword [ebp - 8], eax
mov edi, dword [ebp - 8]
mov edi, dword [ebp + edi*4 - 0xc30]
mov eax, edx
sar eax, 1
mov esi, dword [ebp + eax*4 - 0x420]
cmp edi, dword [ebp + esi*4 - 0xc30]
mov ecx, edx
jge 0x421feb
mov edi, dword [ebp - 8]
mov edi, dword [ebp + edi*4 - 0xc30]
lea ebx, [ebx]
mov dword [ebp + ecx*4 - 0x420], esi
mov ecx, eax
sar eax, 1
mov esi, dword [ebp + eax*4 - 0x420]
cmp edi, dword [ebp + esi*4 - 0xc30]
jl 0x421fd0
mov eax, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x420], eax
mov eax, dword [ebp - 4]
add eax, 1
cmp eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
jle 0x421f90
cmp edx, 0x104
jge 0x42226c
cmp edx, 1
jle 0x4221df
jmp 0x422020
mov esi, dword [ebp + edx*4 - 0x420]
mov ecx, dword [ebp - 0x41c]
sub edx, 1
mov eax, 2
cmp eax, edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x41c], esi
mov ecx, 1
mov dword [ebp - 8], esi
jg 0x422099
mov esi, dword [ebp + esi*4 - 0xc30]
mov dword [ebp - 4], esi
jge 0x422077
mov esi, dword [ebp + eax*4 - 0x41c]
mov edi, dword [ebp + eax*4 - 0x420]
mov esi, dword [ebp + esi*4 - 0xc30]
cmp esi, dword [ebp + edi*4 - 0xc30]
jge 0x422077
add eax, 1
mov esi, dword [ebp + eax*4 - 0x420]
mov edi, dword [ebp - 4]
cmp edi, dword [ebp + esi*4 - 0xc30]
jl 0x422099
mov dword [ebp + ecx*4 - 0x420], esi
mov ecx, eax
add eax, eax
cmp eax, edx
jle 0x422054
mov eax, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x420], eax
mov esi, dword [ebp + edx*4 - 0x420]
mov edi, dword [ebp - 0x41c]
sub edx, 1
mov eax, 2
cmp eax, edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x41c], esi
mov ecx, 1
mov dword [ebp - 0x10], esi
jg 0x42211f
mov esi, dword [ebp + esi*4 - 0xc30]
mov dword [ebp - 4], esi
jge 0x4220fa
mov esi, dword [ebp + eax*4 - 0x41c]
mov edi, dword [ebp + eax*4 - 0x420]
mov esi, dword [ebp + esi*4 - 0xc30]
cmp esi, dword [ebp + edi*4 - 0xc30]
jge 0x4220fa
add eax, 1
mov esi, dword [ebp + eax*4 - 0x420]
mov edi, dword [ebp - 4]
cmp edi, dword [ebp + esi*4 - 0xc30]
jl 0x42211c
mov dword [ebp + ecx*4 - 0x420], esi
mov ecx, eax
add eax, eax
cmp eax, edx
jle 0x4220d7
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
add ebx, 1
mov dword [ebp + ecx*4 - 0x420], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + edi*4 - 0xc30]
mov dword [ebp + edi*4 - 0x1440], ebx
mov dword [ebp + eax*4 - 0x1440], ebx
mov eax, dword [ebp + eax*4 - 0xc30]
mov esi, ecx
mov edi, eax
and esi, 0xff
and edi, 0xff
cmp edi, esi
mov dword [ebp - 4], ebx
jle 0x422164
mov esi, edi
and eax, 0xffffff00
and ecx, 0xffffff00
add eax, ecx
add esi, 1
or eax, esi
add edx, 1
mov dword [ebp + ebx*4 - 0xc30], eax
mov eax, edx
sar eax, 1
mov dword [ebp + edx*4 - 0x420], ebx
mov esi, dword [ebp + eax*4 - 0x420]
mov edi, ebx
mov dword [ebp + ebx*4 - 0x1440], 0xffffffff
mov ebx, dword [ebp + edi*4 - 0xc30]
cmp ebx, dword [ebp + esi*4 - 0xc30]
mov ecx, edx
jge 0x4221cc
mov dword [ebp + ecx*4 - 0x420], esi
mov ecx, eax
sar eax, 1
mov esi, dword [ebp + eax*4 - 0x420]
cmp ebx, dword [ebp + esi*4 - 0xc30]
jl 0x4221b1
cmp edx, 1
mov ebx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x420], edi
jg 0x422020
mov ecx, dword [ebp + 0xc]
cmp ebx, 0x204
jge 0x422276
mov esi, 1
xor bl, bl
cmp ecx, esi
jl 0x422280
lea edi, [ebp - 0x143c]
xor edx, edx
cmp dword [edi], edx
jl 0x422221
mov eax, edi
jmp 0x422210
mov eax, dword [eax]
lea eax, [ebp + eax*4 - 0x1440]
add edx, 1
cmp dword [eax], 0
jge 0x422210
cmp edx, 0x11
mov eax, dword [ebp + 8]
mov byte [eax + esi - 1], dl
jle 0x42222f
mov bl, 1
add esi, 1
add edi, 4
cmp esi, ecx
jle 0x422203
test bl, bl
je 0x422280
mov esi, 1
mov eax, dword [ebp + esi*4 - 0xc30]
sar eax, 8
cdq
sub eax, edx
sar eax, 1
add eax, 1
shl eax, 8
mov dword [ebp + esi*4 - 0xc30], eax
add esi, 1
cmp esi, ecx
jle 0x422242
xor edi, edi
jmp 0x421f50
mov esi, 0x7d1
jmp 0x41a290
mov esi, 0x7d2
jmp 0x41a290
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret