Function at 0x460862
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x3c
jne 0x460e37
cmp byte [eax + 1], 0x3f
jne 0x460e37
add dword [edi + 0x10], 2
mov eax, dword [ebx + 0xac]
mov dword [ebx + 0xac], 2
add dword [ebx + 0xc8], 2
add dword [edi + 0x20], 2
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x25
jne 0x4608b9
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x4608e0
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x4608e0
mov dword [esp], ebx
call fcn.00456dba
cmp dword [ebx + 0x124], 0
jne 0x46090f
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov ecx, edx
sub ecx, dword [eax + 0xc]
cmp ecx, 0x1f4
jle 0x46090f
mov eax, dword [eax + 0x14]
sub eax, edx
cmp eax, 0x1f3
jg 0x46090f
mov eax, ebx
call fcn.00457421
mov dword [esp], ebx
call fcn.0045a2d9
mov dword [ebp - 0x34], eax
test eax, eax
je 0x460e20
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x3f
jne 0x4609d4
cmp byte [edx + 1], 0x3e
jne 0x4609d4
cmp edi, eax
je 0x460950
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov eax, ebx
call fcn.00455f95
mov eax, dword [ebx + 0x24]
add dword [ebx + 0xc8], 2
add dword [eax + 0x10], 2
add dword [eax + 0x20], 2
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x460972
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x460999
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x460999
mov dword [esp], ebx
call fcn.00456dba
mov eax, dword [ebx]
test eax, eax
je 0x4609c6
cmp dword [ebx + 0xd4], 0
jne 0x4609c6
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x4609c6
mov edx, dword [ebp - 0x34]
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov edx, dword [ebx + 4]
mov dword [esp], edx
call eax
mov ecx, dword [ebp - 0x38]
mov dword [ebx + 0xac], ecx
jmp 0x460e37
mov dword [esp], 0x64
call dword [0x5dd278]
mov esi, eax
test eax, eax
jne 0x4609fc
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00479ad9
jmp 0x460aa5
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax]
lea edx, [eax - 9]
cmp edx, 1
jbe 0x460a2e
cmp eax, 0x20
je 0x460a2e
cmp eax, 0xd
je 0x460a2e
mov edx, dword [ebp - 0x34]
mov ecx, 0x654035
mov dword [esp], edx
mov eax, ebx
mov edx, 0x41
call fcn.00455d2a
mov dword [esp], ebx
call fcn.0045a676
lea ecx, [ebp - 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [ebp - 0x40], ecx
call fcn.0047b32b
mov dword [ebp - 0x2c], 0
mov edx, eax
mov dword [ebp - 0x3c], 0x64
mov dword [ebp - 0x30], 0
jmp 0x460bc3
mov eax, dword [ebp - 0x30]
add eax, 5
cmp eax, dword [ebp - 0x3c]
jl 0x460ab5
shl dword [ebp - 0x3c], 1
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x40], edx
mov dword [esp + 4], ecx
mov dword [esp], esi
call dword [0x5dd27c]
mov edx, dword [ebp - 0x40]
test eax, eax
jne 0x460ab3
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00479ad9
mov dword [esp], esi
call dword [0x5dd270]
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0xac], eax
jmp 0x460e37
mov esi, eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0x32
jle 0x460af4
cmp dword [ebx + 0x124], 0
jne 0x460aed
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x14]
sub eax, dword [ecx + 0x10]
cmp eax, 0xf9
jg 0x460aed
mov eax, ebx
mov dword [ebp - 0x40], edx
call fcn.00456e34
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x40]
jmp 0x460af4
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x1c], 1
jne 0x460b06
mov ecx, dword [ebp - 0x30]
mov byte [esi + ecx], dl
inc ecx
mov dword [ebp - 0x30], ecx
jmp 0x460b1b
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x30]
lea eax, [esi + edx]
mov dword [esp], eax
call fcn.0047b82e
add dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0xa
jne 0x460b32
inc dword [eax + 0x1c]
mov dword [eax + 0x20], 1
jmp 0x460b35
inc dword [eax + 0x20]
mov eax, dword [ebx + 0x24]
mov edx, dword [ebp - 0x1c]
add dword [eax + 0x10], edx
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x460b4e
mov dword [esp], ebx
call fcn.0045820a
lea ecx, [ebp - 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0047b32b
mov edx, eax
test eax, eax
jne 0x460bc3
cmp dword [ebx + 0x124], 0
jne 0x460b92
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov ecx, edx
sub ecx, dword [eax + 0xc]
cmp ecx, 0x1f4
jle 0x460b92
mov eax, dword [eax + 0x14]
sub eax, edx
cmp eax, 0x1f3
jg 0x460b92
mov eax, ebx
call fcn.00457421
cmp dword [ebx + 0x124], 0
jne 0x460bb2
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
sub eax, dword [edx + 0x10]
cmp eax, 0xf9
jg 0x460bb2
mov eax, ebx
call fcn.00456e34
lea eax, [ebp - 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0047b32b
mov edx, eax
cmp edx, 0xff
jg 0x460be8
lea eax, [edx - 9]
cmp eax, 1
jbe 0x460bdd
cmp edx, 0xd
je 0x460bdd
cmp edx, 0x1f
jle 0x460c2d
cmp edx, 0x3f
jne 0x460a64
jmp 0x460c1d
lea eax, [edx - 0xe000]
cmp eax, 0x1ffd
jbe 0x460a64
lea eax, [edx - 0x100]
cmp eax, 0xd6ff
jbe 0x460a64
lea eax, [edx - 0x10000]
cmp eax, 0xfffff
jbe 0x460a64
jmp 0x460c2d
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax + 1], 0x3e
jne 0x460a64
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], esi
cmp edx, 0x3f
mov byte [esi + ecx], 0
je 0x460c58
mov eax, dword [ebp - 0x34]
mov ecx, 0x654054
mov dword [esp], eax
mov edx, 0x2f
mov eax, ebx
call fcn.00455d2a
jmp 0x460e12
cmp edi, dword [ebx + 0x24]
je 0x460c6e
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x41
mov eax, ebx
call fcn.00455f95
mov eax, dword [ebx + 0x24]
add dword [ebx + 0xc8], 2
add dword [eax + 0x10], 2
add dword [eax + 0x20], 2
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x25
jne 0x460c90
mov dword [esp], ebx
call fcn.0045820a
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0
jne 0x460cb7
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.0047ad84
test eax, eax
jg 0x460cb7
mov dword [esp], ebx
call fcn.00456dba
cmp dword [ebp - 0x38], 1
ja 0x460de6
mov edx, dword [ebp - 0x34]
mov dword [esp + 4], str.oasis_xml_catalog
mov dword [esp], edx
call fcn.00478cd0
test eax, eax
je 0x460de6
call fcn.004449dd
sub eax, 2
cmp eax, 1
ja 0x460de6
jmp 0x460cf0
inc esi
mov al, byte [esi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x460cef
cmp al, 0x20
je 0x460cef
cmp al, 0xd
je 0x460cef
mov dword [esp + 8], 7
mov dword [esp + 4], str.catalog
mov dword [esp], esi
call fcn.0047965a
test eax, eax
jne 0x460db8
add esi, 7
jmp 0x460d28
inc esi
mov al, byte [esi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x460d27
cmp al, 0x20
je 0x460d27
cmp al, 0xd
je 0x460d27
cmp al, 0x3d
jne 0x460de6
inc esi
mov al, byte [esi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x460d42
cmp al, 0x20
je 0x460d42
cmp al, 0xd
je 0x460d42
cmp al, 0x22
je 0x460d5d
cmp al, 0x27
jne 0x460db8
inc esi
mov edx, esi
jmp 0x460d64
mov edx, edi
mov cl, byte [edx]
test cl, cl
je 0x460db8
cmp cl, al
lea edi, [edx + 1]
jne 0x460d62
sub edx, esi
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.00479405
mov esi, eax
jmp 0x460d84
inc edi
mov al, byte [edi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x460d83
cmp al, 0x20
je 0x460d83
cmp al, 0xd
je 0x460d83
test al, al
jne 0x460dba
test esi, esi
je 0x460de6
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x11c]
mov dword [esp], eax
call fcn.004459bd
mov dword [ebx + 0x11c], eax
jmp 0x460ddd
xor esi, esi
mov ecx, dword [ebp - 0x2c]
mov edx, 0x5d
mov dword [esp], ecx
mov eax, ebx
mov ecx, str.Catalog_PI_syntax_error:__s_n
mov dword [esp + 4], 0
call fcn.00455ecb
test esi, esi
je 0x460de6
mov dword [esp], esi
call dword [0x5dd270]
mov eax, dword [ebx]
test eax, eax
je 0x460e12
cmp dword [ebx + 0xd4], 0
jne 0x460e12
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x460e12
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov edx, dword [ebx + 4]
mov dword [esp], edx
call eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call dword [0x5dd270]
jmp 0x460e2e
xor ecx, ecx
mov edx, 0x2e
mov eax, ebx
call fcn.00455def
mov edx, dword [ebp - 0x38]
mov dword [ebx + 0xac], edx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret