Function at 0x4088f0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x43da48
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, ecx
push edi
push str.0123456789ABCDEFGHJKLMNPQRSTUVWXYZ
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], esi
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x14]
mov dword [esp + 0x3c], 0
call sub.MFC42.DLL_CString::CString_4
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString_4
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::CString_4
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CString::CString_4
mov ebx, 4
lea eax, [esp + 0x24]
push ebx
push 6
push eax
lea ecx, [esi + 0xc]
mov byte [esp + 0x48], bl
mov byte [esp + 0x1f], 1
call sub.MFC42.DLL_CString::Mid_1
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c], bl
call sub.MFC42.DLL_CString::CString
push 0x451d10
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
or edi, 0xffffffff
cmp eax, edi
je 0x4089af
mov byte [esp + 0x13], 0
push 0x451d0c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
cmp eax, edi
jne 0x4089c9
mov al, byte [esp + 0x13]
test al, al
jne 0x408a41
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str._BARCODE__S_N_Include_Unusable_Character____I__O_...
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [0x48f9c8]
call fcn.00439080
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x3c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], edi
call sub.MFC42.DLL_CString::CString
xor al, al
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea eax, [esi + 8]
mov ecx, dword [ecx - 8]
cmp ecx, edx
jge 0x408aab
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x3c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], edi
call sub.MFC42.DLL_CString::CString
mov al, 1
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
push eax
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea edx, [esp + 0x24]
push 6
push edx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x40], 6
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c], bl
call sub.MFC42.DLL_CString::CString
push ebx
lea eax, [esp + 0x28]
push 6
push eax
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Mid_1
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x40], 7
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
push 2
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x40], 8
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x28]
mov edi, 0x21
mov dword [esp + 0x24], edi
mov cl, byte [eax + 0x21]
test cl, cl
je 0x408b69
mov esi, dword [esp + 0x18]
mov dl, cl
mov bl, byte [esi]
cmp dl, bl
je 0x408b63
mov dl, byte [edi + eax - 1]
dec edi
test dl, dl
jne 0x408b56
mov dword [esp + 0x24], edi
jmp 0x408b6d
mov esi, dword [esp + 0x18]
test cl, cl
mov ebp, 0x21
je 0x408b88
mov bl, byte [esi + 1]
mov dl, cl
cmp dl, bl
je 0x408b88
mov dl, byte [eax + ebp - 1]
dec ebp
test dl, dl
jne 0x408b7b
test cl, cl
mov edi, 0x21
je 0x408ba3
mov bl, byte [esi + 2]
mov dl, cl
cmp dl, bl
je 0x408ba3
mov dl, byte [edi + eax - 1]
dec edi
test dl, dl
jne 0x408b96
test cl, cl
mov esi, 0x21
je 0x408bc0
mov edx, dword [esp + 0x18]
mov dl, byte [edx + 3]
cmp cl, dl
je 0x408bc0
mov cl, byte [esi + eax - 1]
dec esi
test cl, cl
jne 0x408bb3
cmp dword [esp + 0x24], 0x21
jne 0x408bf5
cmp ebp, 0x21
jne 0x408bf5
cmp edi, ebp
jne 0x408bf5
cmp esi, ebp
jne 0x408bf5
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push eax
push ecx
lea edx, [esi + 4]
push str._sZZZZ_s
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
jmp 0x408c55
inc esi
cmp esi, 0x21
jle 0x408bfe
inc edi
xor esi, esi
cmp edi, 0x21
jle 0x408c06
inc ebp
xor edi, edi
cmp ebp, 0x21
jle 0x408c16
mov ecx, dword [esp + 0x24]
inc ecx
xor ebp, ebp
mov dword [esp + 0x24], ecx
mov cl, byte [esi + eax]
mov esi, dword [esp + 0x24]
mov dl, byte [edi + eax]
mov bl, byte [eax + ebp]
mov al, byte [esi + eax]
mov esi, dword [esp + 0x1c]
movsx ecx, cl
movsx edx, dl
push esi
mov esi, dword [esp + 0x30]
push ecx
push edx
movsx ecx, bl
movsx edx, al
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
lea ecx, [esi + 4]
push str._s_c_c_c_c_s
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x20
mov ecx, esi
call fcn.00407af0
lea ecx, [esp + 0x1c]
mov bl, al
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x3c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x34]
pop edi
pop esi
mov al, bl
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x30
ret