Function at 0x4480d0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
test byte [eax + 0xc], 4
push ebx
mov ebx, dword [eax + 8]
push esi
mov esi, dword [eax + 0x10]
push edi
mov edi, ebx
mov dword [ebp - 4], edi
jne 0x4480ec
mov eax, dword [eax]
jmp 0x4480f0
movzx eax, byte [eax + 5]
add eax, 0xfffffff4
cmp eax, 0x12
ja case.0x448103.13
movzx eax, byte [eax + 0x448450]
jmp dword [eax*4 + 0x448428]
push 0
push ebx
push esi
call fcn.00412ae0
add esp, 0xc
test eax, eax
jns 0x448282
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push eax
push ecx
push str._s:_Bad_UTF_8_encoding___Rrc_
push 0xffffa6ee
push edx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x448282
mov al, byte [esi]
movsx ecx, al
sub ecx, 0x30
dec ebx
inc esi
cmp ecx, 0xa
jb 0x44815b
cmp al, 0x20
jne 0x448164
test ebx, ebx
jne 0x448148
jmp 0x448282
mov ecx, dword [ebp + 8]
movsx edx, al
mov eax, dword [ebp + 0xc]
push edx
push eax
push str._s:_Bad_numberic_string:_ch_x
push 0xffffa6ed
push ecx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x448282
mov al, byte [esi]
movsx ecx, al
lea edx, [ecx - 0x30]
dec ebx
inc esi
cmp edx, 0xa
jb 0x4481e0
lea edx, [ecx - 0x61]
cmp edx, 0x1a
jb 0x4481e0
add ecx, 0xffffffbf
cmp ecx, 0x1a
jb 0x4481e0
cmp al, 0x20
je 0x4481e0
cmp al, 0x27
je 0x4481e0
cmp al, 0x28
je 0x4481e0
cmp al, 0x29
je 0x4481e0
cmp al, 0x2b
je 0x4481e0
cmp al, 0x2c
je 0x4481e0
cmp al, 0x2d
je 0x4481e0
cmp al, 0x2e
je 0x4481e0
cmp al, 0x2f
je 0x4481e0
cmp al, 0x3a
je 0x4481e0
cmp al, 0x3d
je 0x4481e0
cmp al, 0x3f
jne 0x4481e9
test ebx, ebx
jne 0x448191
jmp 0x448282
mov ecx, dword [ebp + 8]
movsx eax, al
push eax
mov eax, dword [ebp + 0xc]
push eax
push str._s:_Bad_printable_string:_ch_x
push 0xffffa6ec
push ecx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x448282
mov al, byte [esi]
dec ebx
inc esi
test al, al
je 0x448224
cmp al, 0x80
jae 0x448224
test ebx, ebx
jne 0x448212
jmp 0x448282
mov ecx, dword [ebp + 8]
movzx edx, al
mov eax, dword [ebp + 0xc]
push edx
push eax
push str._s:_Bad_IA5_string:_ch_x
push 0xffffa6e9
push ecx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
mov eax, esi
call fcn.00448070
cmp eax, 1
je 0x448294
cmp eax, 2
jle 0x448261
cmp eax, 4
jle 0x448294
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 4]
push eax
push 0x14
mov ecx, ebx
mov eax, esi
call fcn.00447ab0
add esp, 0xc
test eax, eax
js 0x44841e
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x44828b
mov dword [eax], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov eax, esi
call fcn.00447f00
mov edi, eax
jmp 0x448282
pop edi
pop esi
mov eax, 0xffffa6ef
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x448282
mov al, byte [esi]
dec ebx
inc esi
lea ecx, [eax - 0x20]
cmp cl, 0x5e
ja 0x4482c3
test ebx, ebx
jne 0x4482b1
jmp 0x448282
mov ecx, dword [ebp + 8]
movzx edx, al
mov eax, dword [ebp + 0xc]
push edx
push eax
push str._s:_Bad_visible_string:_ch_x
push 0xffffa6e7
push ecx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test bl, 3
jne 0x448369
xor edi, edi
test ebx, ebx
je 0x448282
add esi, 2
jmp 0x448300
movzx eax, byte [esi - 2]
movzx edx, byte [esi - 1]
movzx ecx, byte [esi]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
cmp eax, 0xd7ff
jbe 0x448333
lea ecx, [eax - 0xe000]
cmp ecx, 0x101fff
ja 0x448347
call fcn.00447050
add edi, eax
add esi, 4
sub ebx, 4
jne 0x448300
jmp 0x448282
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push edx
push str._s:_Bad_universal_string:_uc_x
push 0xffffa6e5
push eax
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ebx
push ecx
push str._s:_Bad_universal_string:_size_not_a_multiple_of_4:_cch_x
push 0xffffa6e5
push edx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test bl, 1
jne 0x4483f7
xor edi, edi
test ebx, ebx
je 0x448282
lea ebx, [ebx]
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
cmp eax, 0xd7ff
jbe 0x4483c1
lea edx, [eax - 0xe000]
cmp edx, 0x101fff
ja 0x4483d5
call fcn.00447050
add edi, eax
add esi, 2
sub ebx, 2
jne 0x4483a0
jmp 0x448282
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0xc]
push eax
push str._s:_Bad_BMP_string:_uc_x
push 0xffffa6e4
push ecx
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ebx
push edx
push str._s:_Bad_BMP_string:_odd_number_of_bytes_cch_x
push 0xffffa6e4
push eax
call fcn.004175d0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffff1d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret