Function at 0x446590
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 0x4465ac
mov eax, dword [eax]
jmp 0x4465b0
movzx eax, byte [eax + 5]
add eax, 0xfffffff4
cmp eax, 0x12
ja case.0x4465c3.13
movzx eax, byte [eax + 0x446910]
jmp dword [eax*4 + 0x4468e8]
push 0
push ebx
push esi
call fcn.00411880
add esp, 0xc
test eax, eax
jns 0x446742
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x446742
mov al, byte [esi]
movsx ecx, al
sub ecx, 0x30
dec ebx
inc esi
cmp ecx, 0xa
jb 0x44661b
cmp al, 0x20
jne 0x446624
test ebx, ebx
jne 0x446608
jmp 0x446742
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x446742
mov al, byte [esi]
movsx ecx, al
lea edx, [ecx - 0x30]
dec ebx
inc esi
cmp edx, 0xa
jb 0x4466a0
lea edx, [ecx - 0x61]
cmp edx, 0x1a
jb 0x4466a0
add ecx, 0xffffffbf
cmp ecx, 0x1a
jb 0x4466a0
cmp al, 0x20
je 0x4466a0
cmp al, 0x27
je 0x4466a0
cmp al, 0x28
je 0x4466a0
cmp al, 0x29
je 0x4466a0
cmp al, 0x2b
je 0x4466a0
cmp al, 0x2c
je 0x4466a0
cmp al, 0x2d
je 0x4466a0
cmp al, 0x2e
je 0x4466a0
cmp al, 0x2f
je 0x4466a0
cmp al, 0x3a
je 0x4466a0
cmp al, 0x3d
je 0x4466a0
cmp al, 0x3f
jne 0x4466a9
test ebx, ebx
jne 0x446651
jmp 0x446742
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x446742
mov al, byte [esi]
dec ebx
inc esi
test al, al
je 0x4466e4
cmp al, 0x80
jae 0x4466e4
test ebx, ebx
jne 0x4466d2
jmp 0x446742
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
mov eax, esi
call fcn.00446530
cmp eax, 1
je 0x446754
cmp eax, 2
jle 0x446721
cmp eax, 4
jle 0x446754
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 4]
push eax
push 0x14
mov ecx, ebx
mov eax, esi
call fcn.00445f70
add esp, 0xc
test eax, eax
js 0x4468de
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x44674b
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.004463c0
mov edi, eax
jmp 0x446742
pop edi
pop esi
mov eax, 0xffffa6ef
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x446742
mov al, byte [esi]
dec ebx
inc esi
lea ecx, [eax - 0x20]
cmp cl, 0x5e
ja 0x446783
test ebx, ebx
jne 0x446771
jmp 0x446742
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test bl, 3
jne 0x446829
xor edi, edi
test ebx, ebx
je 0x446742
add esi, 2
jmp 0x4467c0
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 0x4467f3
lea ecx, [eax - 0xe000]
cmp ecx, 0x101fff
ja 0x446807
call fcn.00445510
add edi, eax
add esi, 4
sub ebx, 4
jne 0x4467c0
jmp 0x446742
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.00415cb0
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.00415cb0
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test bl, 1
jne 0x4468b7
xor edi, edi
test ebx, ebx
je 0x446742
lea ebx, [ebx]
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
cmp eax, 0xd7ff
jbe 0x446881
lea edx, [eax - 0xe000]
cmp edx, 0x101fff
ja 0x446895
call fcn.00445510
add edi, eax
add esi, 2
sub ebx, 2
jne 0x446860
jmp 0x446742
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.00415cb0
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.00415cb0
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