Function at 0x46a7e0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x538a60]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [0x53ec48]
push ebx
push esi
mov esi, edx
push edi
lea ecx, [esi + 1]
mov edi, edi
mov al, byte [esi]
inc esi
test al, al
jne 0x46a800
sub esi, ecx
mov ecx, 0
mov eax, ecx
je 0x46a81e
cmp byte [edx + eax], 0x2c
jne 0x46a819
inc ecx
inc eax
cmp eax, esi
jb 0x46a812
movsx edi, cx
shl edi, 2
push edi
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
test ebx, ebx
je 0x46aa62
test edi, edi
je 0x46a84b
mov byte [eax], 0
lea eax, [eax + 1]
dec edi
jne 0x46a842
xor edi, edi
xor ecx, ecx
test esi, esi
je 0x46a87f
mov edx, dword [0x53ec48]
lea esp, [esp]
test ecx, ecx
jne 0x46a868
mov dword [ebx + edi*4], edx
inc edi
cmp byte [edx + ecx], 0x2c
jne 0x46a87a
mov byte [edx + ecx], 0
inc ecx
lea eax, [edx + ecx]
mov dword [ebx + edi*4], eax
inc edi
inc ecx
cmp ecx, esi
jb 0x46a860
mov dword [ebp - 0xc], 0
test edi, edi
je 0x46aa4f
mov edi, edi
push 0xe
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 8], esi
test esi, esi
je 0x46aa62
mov edx, 0xe
mov ecx, esi
mov byte [ecx], 0
lea ecx, [ecx + 1]
dec edx
jne 0x46a8b5
mov eax, dword [ebx]
movsx eax, byte [eax]
push eax
push str.._c:
push 7
push esi
call fcn.004bb50e
add esp, 8
mov dword [ebp - 0x10], esi
lea edx, [ebp - 0x10]
call fcn.00476b10
mov esi, eax
add esp, 8
mov dword [ebp - 0x14], esi
test esi, esi
jne 0x46a901
push dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x46aa3d
push 0
push 1
push 0
push 0
push esi
mov dword [0x53eba0], 0
call fcn.0048e2a0
add esp, 0x14
mov dword [0x53eba0], eax
test eax, eax
jne 0x46a93b
push dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x46aa27
mov ecx, dword [ebx]
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x46a942
sub esi, edx
cmp esi, 3
jb 0x46aa3d
push ecx
push 0x561208
push 0x561418
push str._S__s__s.z
push 0x1000
push 0x547d60
call fcn.00471220
mov ecx, 2
add esp, 0x18
cmp esi, ecx
jbe 0x46a991
nop
mov eax, dword [ebx]
cmp byte [eax + ecx], 0x5c
jne 0x46a98c
mov byte [eax + ecx], 0x2f
inc ecx
cmp ecx, esi
jb 0x46a980
mov edx, 0x547d60
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x46a9a0
xor eax, eax
sub edx, ecx
je 0x46a9d1
lea ecx, [ecx]
mov cl, byte [eax + 0x547d60]
cmp cl, 0x5c
je 0x46a9c5
cmp cl, 0x2f
je 0x46a9c5
cmp cl, 0x3a
jne 0x46a9cc
mov byte [eax + 0x547d60], 0x5f
inc eax
cmp eax, edx
jb 0x46a9b0
mov edx, dword [ebx]
mov ecx, dword [0x53eba0]
add edx, 2
call fcn.004588a0
cmp al, 1
jne 0x46aa12
push 0x547d60
push str._s_notfound.z
push 0x1000
push 0x547d60
call fcn.00471220
push 0
mov edx, 0x51b858
mov ecx, 0x547d60
call fcn.00457af0
add esp, 0x14
push dword [ebp - 8]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x14]
lea eax, [esi + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [esi + 0x40084]
push esi
call eax
add esp, 4
mov eax, dword [ebp - 0xc]
add ebx, 4
inc eax
mov dword [ebp - 0xc], eax
cmp eax, edi
jb 0x46a890
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bae74
mov esp, ebp
pop ebp
ret
push str.Failed_to_allocate_memory_on_process_heap_n
call fcn.004bc829
add esp, 4
push 1
call fcn.004bcc8d
int3