Function at 0x414b30
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x44dfcb
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x461b64]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x50]
xor esi, esi
cmp eax, esi
je 0x414ede
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
push eax
mov dword [esp + 0x48], esi
call fcn.004373c3
add esp, 4
cmp eax, esi
mov dword [esp + 0x14], eax
jne 0x414bb1
push str.No_enough_memory.
push 0x463178
call fcn.00403ad0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404220
mov ecx, esi
call fcn.00402a00
push 2
call fcn.00436c40
mov esi, eax
mov cl, byte [esi]
mov eax, 0x45048c
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
cmp cl, dl
je 0x414c57
cmp byte [eax], 0
jne 0x414bc0
cmp byte [esi], 0
je 0x414e81
xor ebx, ebx
xor ebp, ebp
cmp byte [esi], bl
mov dword [esp + 0x50], esi
je 0x414cb4
test ebx, ebx
mov cl, byte [esi]
jne 0x414c08
mov edx, 0x45048c
mov al, byte [edx]
add edx, 1
cmp cl, al
je 0x414ca9
cmp byte [edx], 0
jne 0x414bf6
xor edx, edx
cmp cl, 0x22
sete dl
test edx, edx
je 0x414c91
mov ecx, ebp
and ecx, 0x80000001
jns 0x414c27
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x414c5f
lea edx, [esi + 1]
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414c31
sub eax, edi
add eax, 1
push eax
push edx
push esi
call fcn.00437420
xor edx, edx
add esp, 0xc
test ebx, ebx
sete dl
xor ebp, ebp
mov ebx, edx
jmp 0x414ca0
add esi, 1
jmp 0x414bb3
mov ecx, esi
lea edi, [ecx + 1]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x414c64
mov eax, ebp
cdq
sub ecx, edi
sub eax, edx
sar eax, 1
add ecx, 1
mov edi, esi
push ecx
sub edi, eax
lea eax, [edi - 1]
push esi
push eax
call fcn.00437420
add esp, 0xc
mov esi, edi
xor ebp, ebp
jmp 0x414ca0
cmp cl, 0x5c
jne 0x414c9b
add ebp, 1
jmp 0x414c9d
xor ebp, ebp
add esi, 1
cmp byte [esi], 0
jne 0x414beb
cmp byte [esi], 0
je 0x414cb4
mov byte [esi], 0
add esi, 1
mov edi, dword [esp + 0x50]
xor ebx, ebx
cmp edi, ebx
je 0x414e81
mov eax, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x34], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414cd7
sub eax, edx
add eax, 5
push eax
call fcn.00435571
add esp, 4
cmp eax, ebx
mov dword [esp + 0x38], eax
je 0x414b86
lea ecx, [esp + 0x28]
mov dword [eax], ecx
mov edx, dword [esp + 0x38]
add edx, 4
mov dword [esp + 0x38], edx
mov ecx, edi
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x414d10
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x48], 1
call fcn.00413cf0
mov eax, dword [esp + 0x38]
cmp eax, ebx
mov byte [esp + 0x44], 0
je 0x414d4a
add eax, 0xfffffffc
push eax
call fcn.00436810
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x414d5b
push eax
call fcn.00437035
add esp, 4
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x414d70
push eax
call fcn.00437035
add esp, 4
lea esp, [esp]
mov cl, byte [esi]
mov eax, 0x45048c
mov dl, byte [eax]
add eax, 1
cmp cl, dl
je 0x414e16
cmp byte [eax], 0
jne 0x414d77
cmp byte [esi], 0
je 0x414e81
xor ebx, ebx
xor ebp, ebp
cmp byte [esi], 0
mov dword [esp + 0x50], esi
je 0x414e73
test ebx, ebx
mov cl, byte [esi]
jne 0x414dc2
mov edx, 0x45048c
mov edi, edi
mov al, byte [edx]
add edx, 1
cmp cl, al
je 0x414e68
cmp byte [edx], 0
jne 0x414db0
xor edx, edx
cmp cl, 0x22
sete dl
test edx, edx
je 0x414e50
mov ecx, ebp
and ecx, 0x80000001
jns 0x414de1
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x414e1e
lea edx, [esi + 1]
mov eax, edx
lea edi, [eax + 1]
jmp 0x414df0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414df0
sub eax, edi
add eax, 1
push eax
push edx
push esi
call fcn.00437420
xor edx, edx
add esp, 0xc
test ebx, ebx
sete dl
xor ebp, ebp
mov ebx, edx
jmp 0x414e5f
add esi, 1
jmp 0x414d70
mov ecx, esi
lea edi, [ecx + 1]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x414e23
mov eax, ebp
cdq
sub ecx, edi
sub eax, edx
sar eax, 1
add ecx, 1
mov edi, esi
push ecx
sub edi, eax
lea eax, [edi - 1]
push esi
push eax
call fcn.00437420
add esp, 0xc
mov esi, edi
xor ebp, ebp
jmp 0x414e5f
cmp cl, 0x5c
jne 0x414e5a
add ebp, 1
jmp 0x414e5c
xor ebp, ebp
add esi, 1
cmp byte [esi], 0
jne 0x414da3
cmp byte [esi], 0
je 0x414e73
mov byte [esi], 0
add esi, 1
mov edi, dword [esp + 0x50]
xor ebx, ebx
cmp edi, ebx
jne 0x414cc2
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00437035
mov ecx, dword [esp + 0x58]
add esp, 4
lea edx, [esp + 0x18]
push edx
call fcn.00414ae0
mov eax, dword [esp + 0x1c]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x44], 0xffffffff
je 0x414ed0
mov ecx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00407040
mov edx, dword [esp + 0x2c]
push edx
call fcn.004360b5
add esp, 0x14
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
xor esi, esi
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 4]
cmp eax, esi
jne 0x414eed
xor eax, eax
jmp 0x414f03
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, dword [esp + 0x58]
add eax, 1
mov dword [ebp], eax
lea eax, [eax*4 + 4]
push eax
call fcn.004386e5
mov ebx, dword [esp + 0x60]
add esp, 4
test eax, eax
mov dword [ebx], eax
jne 0x414f52
push str.No_enough_memory.
push 0x463178
call fcn.00403ad0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404220
mov ecx, esi
call fcn.00402a00
push 2
call fcn.00436c40
push 0x14
call fcn.004362e3
mov esi, eax
add esp, 4
mov dword [esp + 0x50], esi
test esi, esi
mov dword [esp + 0x44], 2
je 0x414ff4
mov edi, dword [esp + 0x4c]
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
mov eax, edi
mov dword [esi + 8], 0xffffffff
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x414f90
sub eax, edx
add eax, 5
push eax
call fcn.00435571
add esp, 4
test eax, eax
mov dword [esi + 0x10], eax
jne 0x414fd9
push str.No_enough_memory.
push 0x463178
call fcn.00403ad0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404220
mov ecx, esi
call fcn.00402a00
push 2
call fcn.00436c40
mov dword [eax], esi
add dword [esi + 0x10], 4
mov edx, dword [esi + 0x10]
mov ecx, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x414fe4
jmp 0x414ff6
xor esi, esi
test esi, esi
mov dword [esp + 0x44], 0xffffffff
jne 0x41502d
push str.No_enough_memory.
push 0x463178
call fcn.00403ad0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00404220
mov ecx, esi
call fcn.00402a00
push 2
call fcn.00436c40
mov edx, dword [esi + 0x10]
mov ecx, dword [ebx]
mov esi, 1
mov dword [ecx], edx
cmp dword [ebp], esi
jle 0x41508c
mov eax, dword [esp + 0x54]
xor edi, edi
mov eax, dword [eax + 4]
test eax, eax
je 0x41506c
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [esi - 1]
cmp edx, eax
jb 0x415071
call fcn.004362ba
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 4]
mov ecx, dword [edi + ecx + 0x10]
mov edx, dword [ebx]
mov dword [edx + esi*4], ecx
add esi, 1
add edi, 0x14
cmp esi, dword [ebp]
jl 0x415044
mov edx, dword [ebp]
mov eax, dword [ebx]
mov dword [eax + edx*4], 0
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret