Function at 0x4154e0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x428da8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebp
push esi
push edi
lea ecx, [esp + 0xc]
mov dword [esp + 0x1c], 1
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xc]
push eax
push str.name__s_
push ecx
mov byte [esp + 0x28], 2
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x30]
push 1
push edx
push ebp
call fcn.00414fd0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x415591
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xc]
push eax
push str.name_s
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x18]
push 1
push edx
push ebp
call fcn.00414fd0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x415591
lea eax, [esp + 0x28]
lea ecx, [esp + 0xc]
push eax
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0xc]
push 1
push ecx
push ebp
call fcn.00414fd0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4156c2
mov edx, dword [esp + 0xc]
push ebx
push 1
push str.value
mov eax, dword [edx - 8]
add eax, esi
push eax
call fcn.00414fd0
add esp, 0xc
test eax, eax
je 0x415660
mov edx, eax
xor ecx, ecx
sub edx, esi
test edx, edx
jle 0x4155cc
cmp byte [ecx + esi], 0x3e
je 0x415660
inc ecx
cmp ecx, edx
jl 0x4155bd
mov ebx, dword [esp + 0x34]
mov cl, byte [eax + 6]
lea edx, [eax + 6]
cmp cl, 0x20
lea edi, [ebx + ebp]
mov byte [esp + 0x28], 0x20
jne 0x4155e7
mov edi, edx
jmp 0x415633
cmp cl, 0x27
jne 0x4155f0
mov byte [esp + 0x28], cl
cmp cl, 0x22
jne 0x4155f9
mov byte [esp + 0x28], cl
mov ecx, ebp
mov edx, 1
sub ecx, eax
lea ecx, [ecx + ebx + 6]
cmp ecx, edx
mov dword [esp + 0x14], ecx
jle 0x415633
mov bl, byte [esp + 0x28]
mov cl, byte [eax + edx + 6]
cmp cl, bl
je 0x41562f
cmp cl, 0x3e
je 0x41562f
cmp cl, 0xa
je 0x41562f
mov ecx, dword [esp + 0x14]
inc edx
cmp edx, ecx
jl 0x415612
jmp 0x415633
lea edi, [edx + eax + 7]
mov ebx, dword [esp + 0x34]
mov edx, ebp
sub edx, edi
xor ecx, ecx
add edx, ebx
test edx, edx
jle 0x415654
mov bl, byte [edi + ecx + 1]
mov byte [ecx + eax], bl
mov byte [edi + ecx + 1], 0
inc ecx
cmp ecx, edx
jl 0x415643
mov ecx, dword [esp + 0x34]
sub eax, edi
lea edi, [ecx + eax - 1]
jmp 0x415664
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x2c]
push edx
push str._value_s
push eax
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [ecx - 8]
pop ebx
lea edx, [ecx + ebp]
mov byte [edx + edi], 0
mov eax, dword [esp + 0xc]
add esi, dword [eax - 8]
sub ebp, esi
lea eax, [edi + ebp - 1]
test eax, eax
jl 0x4156a7
lea ebp, [ecx + esi]
mov dl, byte [eax + esi]
mov byte [eax + ebp], dl
dec eax
jns 0x41569e
xor eax, eax
test ecx, ecx
jle 0x4156be
mov edx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dl, byte [eax + edx - 1]
mov byte [eax + esi - 1], dl
jl 0x4156ad
add edi, ecx
jmp 0x4156c6
mov edi, dword [esp + 0x30]
lea ecx, [esp + 0xc]
mov byte [esp + 0x1c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x1c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x14]
mov eax, edi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x14
ret