Function at 0x44cd00
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push ebx
sub esp, 0x48
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
movzx ecx, byte [ebp + 0x17]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], edx
test ecx, 0x80
je 0x44cd34
lea eax, [ebp + 0x23]
and eax, 0xfffffffc
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
jmp 0x44cd3b
mov dword [ebp - 0x28], 0
cmp dword [ebp + 0x1c], 0
mov eax, dword [ebp - 0x14]
jne 0x44cd49
mov eax, 0
push 0x4fb680
mov dword [ebp - 0x18], eax
call fcn.00439a70
add esp, 4
mov eax, dword [0x4fb684]
test eax, eax
jne 0x44d80f
mov dword [0x4fb684], 1
test byte [ebp - 0x28], 0x40
je 0x44cdea
push 4
call fcn.0049e3e0
add esp, 4
test eax, eax
je 0x44cd93
push 0
push 0x20d
call fcn.00464d00
add esp, 8
push 1
call fcn.0049e3e0
add esp, 4
test eax, eax
je 0x44cdb0
push 0
push 0x20e
call fcn.00464d00
add esp, 8
push 8
call fcn.0049e3e0
add esp, 4
test eax, eax
je 0x44cdcd
push 0
push 0x20f
call fcn.00464d00
add esp, 8
push 0x10
call fcn.0049e3e0
add esp, 4
test eax, eax
je 0x44cdea
push 0
push 0x210
call fcn.00464d00
add esp, 8
movzx ecx, byte [ebp + 0x17]
mov eax, ecx
and eax, 8
shr eax, 3
test esi, esi
jne 0x44ce41
test eax, eax
je 0x44d3b3
push 0
push 0x209
call fcn.004667e0
push 0x40
push eax
push str.Stop___Program_terminated.
call fcn.004ad650
add esp, 0x14
mov ecx, str.Stop___Program_terminated.
mov dword [ebp - 0x20], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x44ce3d
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x44ce28
dec eax
mov ebx, eax
jmp 0x44ce4a
mov dword [ebp - 0x20], edi
mov ebx, esi
test eax, eax
je 0x44ce9d
cmp dword [ebp + 0x1c], 0
jne 0x44ce5a
xor edi, edi
movzx ecx, byte [ebp + 0x17]
xor esi, esi
jmp 0x44cea1
push 0
push 0x20a
call fcn.004667e0
push 0x40
push eax
push str.Return_code
call fcn.004ad650
add esp, 0x14
mov ecx, str.Return_code
mov dword [ebp - 0x20], ecx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x44ce95
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x44ce80
dec eax
movzx ecx, byte [ebp + 0x17]
mov ebx, eax
jmp 0x44cea1
xor edi, edi
xor esi, esi
push 0x2a
and ecx, 8
lea eax, [ebp - 0x48]
push eax
shr ecx, 2
mov eax, 2
shl eax, cl
lea edx, [ebp - 0x1c]
push edx
add eax, 0xfffffffe
push eax
mov dword [ebp - 0x54], eax
call fcn.0045de60
mov edx, eax
add esp, 0x10
test edx, edx
je 0x44cef5
mov eax, dword [ebp + 0x14]
movzx eax, al
test al, 1
je 0x44cee2
movzx eax, dx
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push str.unknown
push dword [ebp - 0x54]
push 2
push edx
call fcn.00464d00
add esp, 0x10
mov edx, dword [ebp - 0x1c]
test byte [edx + 0x18d], 0x20
je 0x44d586
test byte [edx + 0x18e], 0x40
je 0x44d137
push 0
push edx
mov dword [ebp - 0x54], edx
call fcn.0046d250
mov edx, dword [ebp - 0x54]
add esp, 8
test eax, eax
je 0x44cf66
mov eax, dword [edx + 0x20]
test eax, eax
je 0x44d40e
test byte [eax + 0x44], 2
je 0x44d3e9
mov ecx, 0x26
mov dword [eax + 0x38], ecx
mov eax, dword [edx + 0x20]
mov dword [eax + 0x3c], ecx
mov eax, dword [edx + 0x78]
test eax, eax
je 0x44cf59
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [edx + 0x78], ecx
mov eax, 0x26
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movsx eax, byte [edx + 0x17a]
mov dword [ebp - 0x28], eax
cmp eax, 8
ja 0x44d074
movzx eax, byte [eax + 0x4c729c]
add eax, 0x44cf88
jmp eax
push 0x247
push str.for_stop.c
push 2
push 8
mov dword [ebp - 0x54], edx
call fcn.00464d00
mov edx, dword [ebp - 0x54]
add esp, 0x10
movzx eax, byte [edx + 0x18c]
mov dword [ebp - 0x4c], eax
mov eax, dword [edx + 0x4c]
test byte [ebp - 0x4c], 4
je 0x44d0be
test byte [edx + 0x18e], 0x40
je 0x44d0be
test byte [edx + 0x18f], 8
je 0x44d0be
cmp byte [edx + 0x17a], 1
je 0x44d109
movsx ecx, byte [edx + 0x17c]
cmp ecx, 2
jne 0x44d0e5
movsx ecx, byte [edx + 0x17a]
cmp ecx, 7
je 0x44d109
cmp ecx, 6
je 0x44d109
cmp ecx, 8
je 0x44d109
dec dword [edx + 0x54]
jmp 0x44d109
cmp ecx, 1
jne 0x44d109
movsx ecx, byte [edx + 0x17a]
cmp ecx, 7
je 0x44d103
cmp ecx, 6
je 0x44d103
cmp ecx, 8
je 0x44d103
dec dword [edx + 0x54]
add eax, 5
mov dword [edx + 0x4c], eax
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], 0
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x17c], 1
jne 0x44d262
mov eax, dword [eax + 0x4c]
mov byte [eax], 0x20
mov edx, dword [ebp - 0x1c]
inc dword [edx + 0x4c]
mov eax, dword [ebp - 0x1c]
jmp 0x44d262
push 0
push edx
mov dword [ebp - 0x54], edx
call fcn.0046d250
mov edx, dword [ebp - 0x54]
add esp, 8
test eax, eax
je 0x44d18b
mov eax, dword [edx + 0x20]
test eax, eax
je 0x44d48c
test byte [eax + 0x44], 2
je 0x44d467
mov ecx, 0x26
mov dword [eax + 0x38], ecx
mov eax, dword [edx + 0x20]
mov dword [eax + 0x3c], ecx
mov eax, dword [edx + 0x78]
test eax, eax
je 0x44d17e
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [edx + 0x78], ecx
mov eax, 0x26
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movsx eax, byte [edx + 0x17a]
dec eax
cmp eax, 7
ja 0x44d249
movzx eax, byte [eax + 0x4c72a8]
add eax, 0x44d1ab
jmp eax
push 0x24d
push str.for_stop.c
push 2
push 8
call fcn.00464d00
add esp, 0x10
mov eax, dword [ebp - 0x1c]
test ebx, ebx
jle 0x44d2cd
mov ecx, ebx
shr ecx, 0x1f
add ecx, ebx
sar ecx, 1
test ecx, ecx
jbe 0x44d57c
mov dword [ebp - 0x54], edi
xor edx, edx
mov dword [ebp - 0x24], esi
mov esi, ecx
mov edi, dword [ebp - 0x20]
mov ecx, dword [eax + 0x4c]
movzx eax, byte [edi + edx*2]
mov byte [ecx + edx*2], al
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [edi + edx*2 + 1]
mov eax, dword [eax + 0x4c]
mov byte [eax + edx*2 + 1], cl
inc edx
cmp edx, esi
jae 0x44d2a7
mov eax, dword [ebp - 0x1c]
jmp 0x44d284
mov esi, dword [ebp - 0x24]
lea edx, [edx + edx + 1]
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
lea ecx, [edx - 1]
cmp ecx, ebx
jae 0x44d2cd
mov ecx, dword [eax + 0x4c]
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax + edx - 1]
mov byte [edx + ecx - 1], al
mov eax, dword [ebp - 0x1c]
test esi, esi
jle 0x44d332
mov ecx, esi
shr ecx, 0x1f
add ecx, esi
sar ecx, 1
test ecx, ecx
jbe 0x44d572
mov dword [ebp - 0x24], esi
xor edx, edx
mov esi, ecx
mov ecx, dword [eax + 0x4c]
add ecx, ebx
movzx eax, byte [edi + edx*2]
mov byte [ecx + edx*2], al
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [edi + edx*2 + 1]
mov eax, dword [eax + 0x4c]
add eax, ebx
mov byte [eax + edx*2 + 1], cl
inc edx
cmp edx, esi
jae 0x44d310
mov eax, dword [ebp - 0x1c]
jmp 0x44d2e9
mov esi, dword [ebp - 0x24]
lea ecx, [edx + edx + 1]
mov eax, dword [ebp - 0x1c]
lea edx, [ecx - 1]
cmp edx, esi
jae 0x44d332
mov edx, ebx
add edx, dword [eax + 0x4c]
movzx eax, byte [edi + ecx - 1]
mov byte [ecx + edx - 1], al
mov eax, dword [ebp - 0x1c]
add ebx, esi
add dword [eax + 0x4c], ebx
mov eax, dword [ebp - 0x1c]
test byte [eax + 0x18e], 0x40
je 0x44d34b
push eax
call fcn.0046bfe0
jmp 0x44d351
push eax
call fcn.0046b420
add esp, 4
test eax, eax
je 0x44d4ed
mov ecx, dword [ebp - 0x1c]
cmp dword [0x508060], 0
jne 0x44d375
cmp dword [ecx + 0xfc], 0
je 0x44d4c2
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x44d55d
test byte [edx + 0x44], 2
je 0x44d53d
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x20]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + 0x78]
test edx, edx
je 0x44d3ab
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x78], ecx
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call fcn.00478090
add esp, 8
cmp dword [0x508060], 0
jne 0x44d3d2
push dword [ebp - 0x18]
call fcn.004adb02
push dword [ebp - 0x18]
mov dword [0x4fb680], 0
call fcn.004a89d0
add esp, 4
jmp 0x44d3ca
mov eax, 0x26
push eax
movzx ecx, byte [edx + 0x190]
push eax
and ecx, 7
push ecx
push 0xffffffffffffffff
push edx
call fcn.0046e340
add esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push edx
mov eax, 0x26
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, 0x26
push eax
movzx ecx, byte [edx + 0x190]
push eax
and ecx, 7
push ecx
push 0xffffffffffffffff
push edx
call fcn.0046e340
add esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push edx
mov eax, 0x26
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
test ebx, ebx
jle 0x44d375
mov eax, dword [ecx + 0x4c]
cmp dword [ebp - 0x14], 0x86
mov byte [eax], 0
je 0x44d530
mov edx, str.STOP_message
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x48]
push edx
call fcn.00466a60
add esp, 8
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x118]
call fcn.0045f1b0
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call fcn.00478090
add esp, 0xc
cmp dword [0x508060], 0
je 0x44d3ca
push dword [ebp - 0x18]
mov dword [0x4fb680], 0
call fcn.004a89d0
add esp, 4
jmp 0x44d3ca
cmp dword [ebp + 0x1c], 1
jne 0x44d4d9
mov edx, str.ABORT
jmp 0x44d4de
push eax
push eax
movzx eax, byte [ecx + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push ecx
call fcn.0046e340
add esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push ecx
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov ecx, 1
jmp 0x44d31a
mov edx, 1
jmp 0x44d2b4
mov dword [ebp - 0x24], esi
movzx esi, byte [ebp + 0x16]
shr esi, 2
and esi, 1
mov dword [ebp - 0x4c], ebx
add esi, esi
movzx ebx, byte [edx + 0x18c]
and ebx, 0xfffffffd
or ebx, esi
mov byte [edx + 0x18c], bl
mov esi, dword [ebp - 0x1c]
movzx edx, byte [ebp + 0x14]
shr edx, 7
movzx eax, byte [esi + 0x18c]
and eax, 0xfffffffe
or eax, edx
movzx edx, byte [ebp + 0x17]
mov byte [esi + 0x18c], al
mov esi, edx
shr esi, 3
and esi, 1
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [ebx + 0x18c]
lea ecx, [esi*4]
and eax, 0xfffffffb
or eax, ecx
mov byte [ebx + 0x18c], al
mov eax, edx
mov ebx, dword [ebp - 0x1c]
shr eax, 2
and eax, 1
movzx ecx, byte [ebx + 0x18c]
shl eax, 3
and ecx, 0xfffffff7
or ecx, eax
mov byte [ebx + 0x18c], cl
mov ecx, edx
mov ebx, dword [ebp - 0x1c]
shr ecx, 6
and ecx, 1
movzx eax, byte [ebx + 0x18c]
shl ecx, 4
and eax, 0xffffffef
or eax, ecx
mov byte [ebx + 0x18c], al
mov eax, esi
mov ecx, dword [ebp - 0x1c]
shl eax, 5
shl esi, 3
movzx ebx, byte [ecx + 0x18c]
and ebx, 0xffffffdf
or ebx, eax
mov byte [ecx + 0x18c], bl
mov ebx, edx
mov ecx, dword [ebp - 0x1c]
shr ebx, 4
and ebx, 1
movzx eax, byte [ecx + 0x195]
shl ebx, 2
and eax, 0xfffffffb
or eax, ebx
mov byte [ecx + 0x195], al
mov eax, dword [ebp - 0x1c]
shr edx, 5
and edx, 1
movzx ecx, byte [eax + 0x195]
and ecx, 0xfffffff7
or ecx, esi
mov esi, edx
mov byte [eax + 0x195], cl
mov ecx, dword [ebp - 0x1c]
shl esi, 6
shl edx, 7
movzx eax, byte [ecx + 0x18c]
and eax, 0xffffffbf
or eax, esi
mov byte [ecx + 0x18c], al
mov esi, dword [ebp - 0x1c]
movzx ebx, byte [esi + 0x18c]
and ebx, 0x7f
or ebx, edx
mov byte [esi + 0x18c], bl
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x28]
mov eax, esi
and eax, 1
movzx edx, byte [ecx + 0x18d]
and edx, 0xfffffffe
or edx, eax
mov byte [ecx + 0x18d], dl
mov edx, esi
mov eax, dword [ebp - 0x1c]
shr edx, 1
and edx, 1
movzx ebx, byte [eax + 0x195]
shl edx, 5
and ebx, 0xffffffdf
or ebx, edx
mov byte [eax + 0x195], bl
mov ebx, esi
mov edx, dword [ebp - 0x1c]
shr ebx, 2
and ebx, 3
movzx ecx, byte [edx + 0x18d]
add ebx, ebx
and ecx, 0xfffffff9
or ecx, ebx
mov byte [edx + 0x18d], cl
mov edx, esi
mov ebx, dword [ebp - 0x1c]
mov ecx, esi
shr edx, 9
and esi, 0xffffff80
and edx, 1
movzx eax, byte [ebx + 0x198]
shl edx, 3
and eax, 0xfffffff7
or eax, edx
mov byte [ebx + 0x198], al
shr ecx, 0xa
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + 0x197]
and eax, 0x7f
or eax, esi
mov byte [ecx + 0x197], al
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
movzx ebx, byte [edx + 0x198]
btr ebx, 4
mov dword [ebp - 0x50], ebx
mov ebx, dword [ebp - 0x4c]
jb 0x44d783
mov ecx, dword [ebp - 0x54]
and ecx, 1
shl ecx, 4
mov eax, dword [ebp - 0x50]
or eax, ecx
mov byte [edx + 0x198], al
mov edx, dword [ebp - 0x1c]
mov eax, 1
push eax
push 4
push eax
push edx
call fcn.00445720
add esp, 0x10
test eax, eax
je 0x44d7d2
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x44d7fa
test byte [edx + 0x44], 2
je 0x44d7da
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x20]
mov dword [ecx + 0x3c], eax
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + 0x78]
test edx, edx
je 0x44d7ca
xor ecx, ecx
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x78], ecx
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov edx, dword [ebp - 0x1c]
jmp 0x44cf05
push eax
push eax
movzx eax, byte [ecx + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push ecx
call fcn.0046e340
add esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push ecx
push eax
push eax
push 2
call fcn.00463630
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
xor eax, eax
push eax
mov dword [0x4fb680], eax
call fcn.004adb02
lea esi, [esi]