Function at 0x4090c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x43e8d8
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_3
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CString::CString_3
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 0x452d10
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
or edi, 0xffffffff
cmp eax, edi
je 0x40917f
mov byte [esp + 0x13], 0
push 0x452d0c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
cmp eax, edi
jne 0x409199
mov al, byte [esp + 0x13]
test al, al
jne 0x409211
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 [0x490c00]
call fcn.00439d10
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 0x40927b
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 0x409339
mov esi, dword [esp + 0x18]
mov dl, cl
mov bl, byte [esi]
cmp dl, bl
je 0x409333
mov dl, byte [edi + eax - 1]
dec edi
test dl, dl
jne 0x409326
mov dword [esp + 0x24], edi
jmp 0x40933d
mov esi, dword [esp + 0x18]
test cl, cl
mov ebp, 0x21
je 0x409358
mov bl, byte [esi + 1]
mov dl, cl
cmp dl, bl
je 0x409358
mov dl, byte [eax + ebp - 1]
dec ebp
test dl, dl
jne 0x40934b
test cl, cl
mov edi, 0x21
je 0x409373
mov bl, byte [esi + 2]
mov dl, cl
cmp dl, bl
je 0x409373
mov dl, byte [edi + eax - 1]
dec edi
test dl, dl
jne 0x409366
test cl, cl
mov esi, 0x21
je 0x409390
mov edx, dword [esp + 0x18]
mov dl, byte [edx + 3]
cmp cl, dl
je 0x409390
mov cl, byte [esi + eax - 1]
dec esi
test cl, cl
jne 0x409383
cmp dword [esp + 0x24], 0x21
jne 0x4093c5
cmp ebp, 0x21
jne 0x4093c5
cmp edi, ebp
jne 0x4093c5
cmp esi, ebp
jne 0x4093c5
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 0x409425
inc esi
cmp esi, 0x21
jle 0x4093ce
inc edi
xor esi, esi
cmp edi, 0x21
jle 0x4093d6
inc ebp
xor edi, edi
cmp ebp, 0x21
jle 0x4093e6
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.004082c0
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