Function at 0x472e50
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
cmp dword [0x5ba98c], 0
push ebx
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x3c], ebx
jne 0x473498
mov eax, 0x5b9d00
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], eax
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x24], eax
nop dword [eax + eax]
mov esi, 1
xor ecx, ecx
mov edi, esi
cmp edx, eax
jge 0x472eb1
nop dword [eax]
mov eax, ebx
sub eax, ecx
inc ecx
imul esi, eax
imul edi, ecx
cmp ecx, dword [esp + 0x20]
jl 0x472ea0
xor edx, edx
mov eax, esi
div edi
mov edx, dword [esp + 0x24]
inc ebx
mov dword [edx], eax
add edx, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov edx, 0x5b9d00
cmp ebx, 0x40
jl 0x472e90
inc dword [esp + 0x20]
add eax, 0x100
mov dword [esp + 0x18], eax
cmp eax, 0x5ba400
jl 0x472e82
mov dword [esp + 0x18], 0
mov ebx, 0x5ba400
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 6
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x24], ecx
xor esi, esi
nop
mov eax, 0xaaaaaaab
mov dword [ebx], edi
mul ecx
mov ecx, esi
mov eax, edx
shr eax, 2
mov dword [esp + 0x10], eax
imul eax, eax, 0x2f
sub ecx, eax
movzx eax, byte [ecx + 0x48c1a8]
add eax, dword [esp + 0x20]
add edi, dword [eax*4 + 0x5b9d00]
mov eax, dword [esp + 0x24]
inc eax
mov ecx, eax
cdq
idiv dword [esp + 0x14]
mov dword [esp + 0x24], ecx
test edx, edx
mov edx, dword [esp + 0x18]
jne 0x472f62
mov eax, dword [esp + 0x10]
add eax, edx
mov dword [eax*4 + 0x5ba920], edi
xor edi, edi
add esi, 8
add ebx, 4
cmp esi, 0xc0
jl 0x472f10
add dword [esp + 0x20], 0x40
add edx, 4
mov dword [esp + 0x18], edx
cmp ebx, 0x5ba640
jl 0x472f04
xor ebx, ebx
mov edi, 0x5ba640
mov dword [esp + 0x20], ebx
nop
xor ecx, ecx
xor edx, edx
mov esi, edx
mov dword [edi], ecx
mov eax, edx
shr esi, 2
and eax, 3
movzx eax, byte [eax + esi*8 + str._____._____]
add eax, dword [esp + 0x20]
add ecx, dword [eax*4 + 0x5b9d00]
lea eax, [edx + 1]
mov edx, eax
and eax, 0x80000003
jns 0x472fc6
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x472fd4
lea eax, [esi + ebx]
mov dword [eax*4 + 0x5ba890], ecx
xor ecx, ecx
add edi, 4
cmp edx, 0x18
jl 0x472f94
add dword [esp + 0x20], 0x40
add ebx, 6
cmp edi, 0x5ba880
jl 0x472f90
xor eax, eax
mov dword [esp + 0x24], eax
mov ecx, eax
mov ebx, eax
shr ecx, 3
xorps xmm0, xmm0
and ebx, 7
movlpd qword [esp + 0x28], xmm0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
lea eax, [ecx*8]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4730aa
test ebx, ebx
je 0x473044
add eax, 0xfffffff7
xor esi, esi
add eax, ebx
xor edi, edi
bts esi, eax
cmp eax, 0x20
cmovae edi, esi
xor esi, edi
cmp eax, 0x40
cmovae edi, esi
jmp 0x473048
mov dword [esp + 0x18], eax
lea eax, [ecx - 1]
xor ecx, ecx
lea edx, [ebx + eax*8]
mov dword [esp + 0x10], eax
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov dword [esp + 0x14], edx
cmp ebx, 7
je 0x4730ef
lea eax, [ecx*8 + 1]
xor edx, edx
add eax, ebx
xor ecx, ecx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x10]
cmovae edx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
or esi, ecx
or edi, edx
jmp 0x4730c9
or edx, 0xffffffff
mov dword [esp + 0x18], eax
or ecx, 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
cmp ebx, 7
je 0x4730f3
lea edx, [eax + 1]
xor ecx, ecx
add edx, ebx
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
mov edx, dword [esp + 0x14]
cmovae ecx, eax
or esi, eax
or edi, ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add eax, ebx
cmp dword [esp + 0x20], 7
je 0x47317b
mov dword [esp + 0x18], eax
cmp ebx, 7
je 0x473125
lea edx, [eax + 9]
xor ecx, ecx
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
mov eax, dword [esp + 0x18]
or edi, ecx
lea edx, [eax + 8]
xor ecx, ecx
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
test ebx, ebx
je 0x4731ab
mov eax, dword [esp + 0x18]
xor ecx, ecx
add eax, 7
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
cmovae edx, ecx
mov eax, dword [esp + 0x10]
or esi, ecx
mov dword [esp + 0x10], eax
or edi, edx
mov eax, dword [esp + 0x18]
jmp 0x47318f
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
test ebx, ebx
je 0x4731b3
lea edx, [eax - 1]
xor ecx, ecx
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
movlpd qword [esp + 0x28], xmm0
mov dword [eax*8 + 0x5894f0], esi
mov dword [eax*8 + 0x5894f4], edi
test edx, edx
js 0x4731f7
cmp ebx, 2
jb 0x4731f7
xor esi, esi
lea eax, [edx*8 - 2]
add eax, ebx
xor edi, edi
bts esi, eax
cmp eax, 0x20
cmovae edi, esi
xor esi, edi
cmp eax, 0x40
lea eax, [ebx + 2]
cmovae edi, esi
jmp 0x473208
mov edi, dword [esp + 0x2c]
lea eax, [ebx + 2]
mov esi, dword [esp + 0x28]
mov ecx, edx
test ecx, ecx
js 0x473229
cmp eax, 7
ja 0x473229
lea edx, [eax + ecx*8]
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov eax, dword [esp + 0x20]
add eax, 0xfffffffe
mov dword [esp + 0x28], eax
js 0x473261
cmp ebx, 1
jb 0x473261
lea edx, [eax*8 - 1]
xor ecx, ecx
xor eax, eax
add edx, ebx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
mov eax, dword [esp + 0x28]
or edi, ecx
lea ecx, [ebx + 1]
test eax, eax
js 0x473289
cmp ecx, 7
ja 0x473289
lea edx, [ecx + eax*8]
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 7
ja 0x4732e5
shl ecx, 3
mov dword [esp + 0x28], ecx
cmp ebx, 2
jb 0x4732c1
lea edx, [ecx - 2]
xor eax, eax
add edx, ebx
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 2]
cmp eax, 7
ja 0x4732e5
lea edx, [eax + ecx]
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov eax, dword [esp + 0x20]
add eax, 2
cmp eax, 7
ja 0x473343
shl eax, 3
mov dword [esp + 0x28], eax
cmp ebx, 1
jb 0x47331f
lea edx, [eax - 1]
xor ecx, ecx
xor eax, eax
add edx, ebx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
mov eax, dword [esp + 0x28]
or edi, ecx
lea ecx, [ebx + 1]
cmp ecx, 7
ja 0x473343
lea edx, [ecx + eax]
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or esi, eax
or edi, ecx
mov eax, dword [esp + 0x24]
mov dword [eax*8 + 0x5996f0], esi
mov dword [eax*8 + 0x5996f4], edi
inc eax
mov dword [esp + 0x24], eax
cmp eax, 0x40
jb 0x472ff2
call fcn.00471e30
call fcn.004719d0
xor esi, esi
nop
mov edx, esi
mov ecx, esi
shr edx, 3
and ecx, 7
mov dword [esp + 0x20], edx
xorps xmm0, xmm0
mov dword [esp + 0x24], ecx
movlpd qword [esp + 0x18], xmm0
cmp edx, 7
je 0x4733f4
lea eax, [ecx + edx*8]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x4733c6
xor edi, edi
add eax, 7
xor ebx, ebx
bts edi, eax
cmp eax, 0x20
cmovae ebx, edi
xor edi, ebx
cmp eax, 0x40
mov dword [esp + 0x18], edi
cmovae ebx, edi
mov dword [esp + 0x1c], ebx
cmp ecx, 7
je 0x4733fc
mov eax, dword [esp + 0x28]
jmp 0x4733ce
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
lea edx, [eax + 9]
xor ecx, ecx
xor eax, eax
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
mov edx, dword [esp + 0x20]
cmovae ecx, eax
or edi, eax
or ebx, ecx
mov ecx, dword [esp + 0x24]
jmp 0x4733fc
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esi*8 + 0x599af0], edi
mov dword [esi*8 + 0x599af4], ebx
movlpd qword [esp + 0x18], xmm0
test edx, edx
je 0x47346a
shl edx, 3
add edx, ecx
test ecx, ecx
je 0x473444
xor edi, edi
lea eax, [edx - 9]
xor ebx, ebx
bts edi, eax
cmp eax, 0x20
cmovae ebx, edi
xor edi, ebx
cmp eax, 0x40
mov dword [esp + 0x18], edi
cmovae ebx, edi
mov dword [esp + 0x1c], ebx
cmp ecx, 7
je 0x473472
jmp 0x47344c
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
xor eax, eax
add edx, 0xfffffff9
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or edi, eax
or ebx, ecx
jmp 0x473472
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esi*8 + 0x5998f0], edi
mov dword [esi*8 + 0x5998f4], ebx
inc esi
cmp esi, 0x40
jb 0x473370
mov ebx, dword [esp + 0x3c]
mov dword [0x5ba98c], 1
mov eax, dword [0x5ba988]
test eax, eax
je 0x473551
push eax
call fcn.004296d0
add esp, 4
push dword [0x5ba984]
call fcn.004296d0
xor edi, edi
add esp, 4
cmp dword [0x5b9cf0], edi
jle 0x4734ed
xor esi, esi
nop dword [eax + eax]
mov ecx, dword [0x5b9cfc]
lea ecx, [esi + ecx]
call fcn.0046f140
inc edi
lea esi, [esi + 0x140]
cmp edi, dword [0x5b9cf0]
jl 0x4734d0
xor esi, esi
cmp dword [0x5b9cf8], esi
jle 0x47351d
xor edi, edi
nop dword [eax]
mov ecx, dword [0x5ba88c]
lea ecx, [edi + ecx]
call fcn.0046f140
inc esi
lea edi, [edi + 0x510]
cmp esi, dword [0x5b9cf8]
jl 0x473500
push dword [0x5ba888]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x5ba988], 0
mov dword [0x5b9cf4], 0
mov dword [0x5ba884], 0
mov dword [0x5ba880], 0
mov ecx, ebx
mov dword [0x5ba99c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473560
sub ecx, edx
je 0x473903
mov ecx, str._empty_
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473596
test dl, dl
je 0x473592
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473596
add eax, 2
add ecx, 2
test dl, dl
jne 0x473576
xor eax, eax
jmp 0x47359b
sbb eax, eax
or eax, 1
test eax, eax
je 0x473903
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4735a8
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.0042f398
mov edx, eax
add esp, 4
mov dword [0x5ba988], edx
sub eax, ebx
mov cl, byte [ebx]
lea ebx, [ebx + 1]
mov byte [eax + ebx - 1], cl
test cl, cl
jne 0x4735c7
xor ecx, ecx
xor eax, eax
mov dword [0x5ba990], ecx
nop
mov bl, byte [edx + eax]
cmp bl, 0x3b
je 0x4735f0
inc ecx
test bl, bl
je 0x4735fd
nop dword [eax]
cmp byte [edx + eax], 0x3b
je 0x4735fd
inc eax
cmp byte [edx + eax], 0
jne 0x4735f0
cmp byte [edx + eax], 0
je 0x47360a
mov byte [edx + eax], 0
inc eax
jmp 0x4735e0
lea eax, [ecx*4]
mov dword [0x5ba990], ecx
push eax
call fcn.0042f398
mov ebx, dword [0x5ba990]
add esp, 4
xor ecx, ecx
mov dword [0x5ba984], eax
xor edi, edi
test ebx, ebx
jle 0x47366e
mov esi, dword [0x5ba988]
mov dl, byte [esi]
nop dword [eax + eax]
test dl, dl
jne 0x47364b
inc ecx
cmp byte [esi + ecx], 0
je 0x473644
mov edx, dword [0x5ba984]
lea eax, [esi + ecx]
mov dword [edx + edi*4], eax
mov dl, byte [eax]
test dl, dl
je 0x473669
nop dword [eax]
mov dl, byte [esi + ecx + 1]
inc ecx
test dl, dl
jne 0x473660
inc edi
cmp edi, ebx
jl 0x473640
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp dword [0x5b9cfc], 0
mov dword [0x5ba888], eax
mov dword [0x5b9cf8], 0
mov dword [0x5b9cf0], 0
mov dword [0x5ba994], 0
mov dword [0x5ba998], 0
jne 0x4736e9
push 0x32c80
call fcn.0042f398
add esp, 4
mov dword [0x5b9cfc], eax
push 0x1106d0
call fcn.0042f398
add esp, 4
mov dword [0x5ba88c], eax
cmp dword [0x5b9cfc], 0
je 0x47390c
test eax, eax
je 0x47390c
mov eax, 0x5a9cf8
nop
mov dword [eax - 8], 0
mov dword [eax - 4], 0
mov dword [eax], 0
add eax, 0x10
cmp eax, 0x5b9cf8
jl 0x4736f0
mov esi, 0x48cab5
movsx eax, byte [esi]
push eax
push str.K_cvK
lea eax, [esp + 0x30]
push 0x10
push eax
call fcn.00420960
add esp, 0x10
lea ecx, [esp + 0x28]
call fcn.0046f320
dec esi
cmp esi, str._PNBRQK__pnbrqk
jg 0x473713
xor eax, eax
mov ebx, 0x48cab5
mov dword [esp + 0x24], eax
cmp eax, 5
jge 0x473787
mov edi, 5
mov esi, ebx
sub edi, eax
movsx eax, byte [esi]
push eax
movsx eax, byte [ebx]
push eax
push str.K_cvK_c
lea eax, [esp + 0x34]
push 0x10
push eax
call fcn.00420960
add esp, 0x14
lea ecx, [esp + 0x28]
call fcn.0046f320
lea esi, [esi - 1]
sub edi, 1
jne 0x473756
mov eax, dword [esp + 0x24]
inc eax
dec ebx
mov dword [esp + 0x24], eax
cmp ebx, str._PNBRQK__pnbrqk
jg 0x473748
xor eax, eax
mov ebx, 0x48cab5
mov dword [esp + 0x24], eax
cmp eax, 5
jge 0x4737e1
mov edi, 5
mov esi, ebx
sub edi, eax
nop
movsx eax, byte [esi]
push eax
movsx eax, byte [ebx]
push eax
push str.K_c_cvK
lea eax, [esp + 0x34]
push 0x10
push eax
call fcn.00420960
add esp, 0x14
lea ecx, [esp + 0x28]
call fcn.0046f320
lea esi, [esi - 1]
sub edi, 1
jne 0x4737b0
mov eax, dword [esp + 0x24]
inc eax
dec ebx
mov dword [esp + 0x24], eax
cmp ebx, str._PNBRQK__pnbrqk
jg 0x4737a0
xor ecx, ecx
mov ebx, 0x48cab5
mov dword [esp + 0x20], ecx
nop word [eax + eax]
cmp ecx, 5
jge 0x473855
mov eax, 5
mov edi, ebx
sub eax, ecx
mov dword [esp + 0x24], eax
mov esi, 0x48cab5
movsx eax, byte [esi]
push eax
movsx eax, byte [edi]
push eax
movsx eax, byte [ebx]
push eax
push str.K_c_cvK_c
lea eax, [esp + 0x38]
push 0x10
push eax
call fcn.00420960
add esp, 0x18
lea ecx, [esp + 0x28]
call fcn.0046f320
dec esi
cmp esi, str._PNBRQK__pnbrqk
jg 0x473817
dec edi
sub dword [esp + 0x24], 1
jne 0x473812
mov ecx, dword [esp + 0x20]
inc ecx
dec ebx
mov dword [esp + 0x20], ecx
cmp ebx, str._PNBRQK__pnbrqk
jg 0x473800
xor edx, edx
mov ecx, 0x48cab5
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov eax, edx
mov dword [esp + 0x24], eax
cmp edx, 5
jge 0x4738d8
mov ebx, ecx
nop
mov edi, 5
mov esi, ebx
sub edi, eax
nop dword [eax]
movsx eax, byte [esi]
push eax
movsx eax, byte [ebx]
push eax
movsx eax, byte [ecx]
push eax
push str.K_c_c_cvK
lea eax, [esp + 0x38]
push 0x10
push eax
call fcn.00420960
add esp, 0x18
lea ecx, [esp + 0x28]
call fcn.0046f320
mov ecx, dword [esp + 0x20]
lea esi, [esi - 1]
sub edi, 1
jne 0x473890
mov eax, dword [esp + 0x24]
dec ebx
inc eax
mov dword [esp + 0x24], eax
cmp eax, 5
jl 0x473880
mov edx, dword [esp + 0x18]
dec ecx
inc edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
cmp ecx, str._PNBRQK__pnbrqk
jg 0x473872
mov ecx, dword [0x5ba998]
cmp dword [0x5ba994], ecx
cmova ecx, dword [0x5ba994]
mov dword [0x5ba99c], ecx
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory._n
push 2
call fcn.0042db9f
add esp, 4
push eax
call fcn.00420900
add esp, 8
push 1
call fcn.0042f382
int3