Function at 0x4a7590
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34c
mov eax, dword [0x4fca20]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [esi + 4], eax
mov dword [esi + 0xc], edx
mov eax, dword [ecx + 8]
push edi
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0x340], eax
lea eax, [edi + eax*2]
movzx edi, word [eax]
or ebx, 0xffffffff
mov dword [ebp - 0x33c], ecx
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x32c], edx
mov dword [ebp - 0x334], edx
mov dword [ebp - 0x344], edx
mov dword [ebp - 0x348], edx
mov dword [ebp - 0x34c], edx
mov dword [ebp - 0x330], eax
test di, di
jne 0x4a7620
pop edi
mov dword [esi + 8], edx
mov dword [esi], edx
pop esi
lea eax, [edx - 2]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047e4d2
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4a7a54
jmp 0x4a7630
cmp dword [ebp - 0x344], 0
je 0x4a7739
push edi
push str.__t_n_r__
call fcn.0047dbb7
add esp, 8
test eax, eax
je 0x4a77ca
mov esi, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x33c]
sub esi, dword [ecx + 0xc]
mov eax, dword [ebp - 0x344]
sar esi, 1
xor edx, edx
sub esi, eax
cmp ebx, edx
jne 0x4a7680
mov dword [ecx], eax
lea eax, [esi + eax - 1]
mov dword [ecx + 4], eax
jmp 0x4a7721
mov eax, dword [ebp - 0x338]
cmp esi, edx
jl 0x4a7e90
mov eax, dword [eax + 0x10]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, esi
or ecx, edx
jge 0x4a76b1
mov ecx, dword [ebp - 0x338]
push esi
add ecx, 0x10
call fcn.00401485
mov ecx, dword [ebp - 0x33c]
mov edx, dword [ecx + 0xc]
lea eax, [esi + esi]
push eax
mov eax, dword [ebp - 0x344]
lea ecx, [edx + eax*2]
mov eax, dword [ebp - 0x338]
mov edx, dword [eax + 0x10]
push ecx
push edx
call fcn.0047d670
add esp, 0xc
mov eax, esi
cmp esi, 0xffffffff
jne 0x4a76fb
mov eax, dword [ebp - 0x338]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4a7703
push ecx
push eax
call fcn.00480cec
add esp, 8
test eax, eax
js 0x4a7e90
mov ecx, dword [ebp - 0x338]
mov edx, dword [ecx + 0x10]
cmp eax, dword [edx - 8]
jg 0x4a7e90
mov dword [edx - 0xc], eax
mov ecx, dword [ecx + 0x10]
xor edx, edx
mov word [ecx + eax*2], dx
mov dword [ebp - 0x344], edx
mov dword [ebp - 0x34c], edx
mov dword [ebp - 0x348], edx
mov edx, dword [ebp - 0x328]
cmp dword [ebp - 0x32c], 0
je 0x4a79de
cmp edi, 0x3e
jne 0x4a7845
test dl, 0xc0
jne 0x4a785c
mov ecx, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x330]
sub eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x334]
sar eax, 1
mov dword [ebp - 0x340], eax
cmp ecx, 1
jne 0x4a77e4
mov dword [ebp - 0x32c], 0
cmp ebx, ecx
jne 0x4a7837
cmp dword [ebp - 0x348], 0x2f
jne 0x4a7837
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x4a77bb
push eax
push 0x4dad5c
call fcn.0047dbb7
mov edx, dword [ebp - 0x328]
add esp, 8
test eax, eax
je 0x4a7837
mov eax, dword [ebp - 0x338]
or dword [eax + 0xc], 0x10000
jmp 0x4a7837
mov eax, dword [ebp - 0x330]
mov edx, dword [ebp - 0x328]
add eax, 2
mov dword [ebp - 0x330], eax
jmp 0x4a7a3d
cmp eax, ecx
jle 0x4a7a30
mov ecx, dword [ebp - 0x334]
mov esi, dword [ebp - 0x330]
lea eax, [ecx + ecx]
sub esi, eax
lea eax, [esi + 2]
mov esi, ecx
mov ecx, dword [ebp - 0x32c]
sub ecx, eax
lea ebx, [ebx]
dec esi
je 0x4a782d
mov dx, word [eax]
mov di, word [ecx + eax]
add eax, 2
cmp dx, di
mov edx, dword [ebp - 0x328]
je 0x4a7810
jmp 0x4a7a30
mov dword [ebp - 0x32c], 0
test dl, 0x20
je 0x4a7dbd
jmp 0x4a7a30
cmp edi, 0x3c
jne 0x4a785c
cmp ebx, 2
je 0x4a7e9a
cmp ebx, 0xffffffff
je 0x4a7e9a
test bl, 1
je 0x4a79ad
test dl, 0xc0
je 0x4a78cc
cmp edi, 0x22
jne 0x4a789a
test dl, dl
jns 0x4a7996
mov eax, dword [ebp - 0x348]
xor edx, 0x80
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
cmp edi, 0x27
jne 0x4a7996
test dl, 0x40
je 0x4a7996
mov eax, dword [ebp - 0x348]
xor edx, 0x40
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
cmp edi, 0x22
jne 0x4a7900
test edx, 0x100
je 0x4a7996
mov eax, dword [ebp - 0x348]
xor edx, 0x180
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
cmp edi, 0x27
jne 0x4a7934
test edx, 0x100
je 0x4a7996
mov eax, dword [ebp - 0x348]
xor edx, 0x140
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
cmp edi, 0x3d
jne 0x4a796c
cmp dword [ebp - 0x348], edi
je 0x4a796c
test edx, 0x100
jne 0x4a7974
mov eax, dword [ebp - 0x348]
xor edx, 0x100
mov dword [ebp - 0x328], edx
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
test edx, 0x100
je 0x4a7996
push edi
push str.__t_n_r
call fcn.0047dbb7
add esp, 8
test eax, eax
jne 0x4a7990
xor dword [ebp - 0x328], 0x100
mov edx, dword [ebp - 0x328]
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], edi
jmp 0x4a7a30
test bl, 0x40
je 0x4a7a30
cmp edi, 0x22
jne 0x4a79ca
test dl, 0x40
jne 0x4a7a30
xor edx, 0x80
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
cmp edi, 0x27
jne 0x4a7a30
test dl, dl
js 0x4a7a30
xor edx, 0x40
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
test edx, edx
je 0x4a7dee
test dl, 0x10
je 0x4a7a9c
cmp edi, 0x3c
je 0x4a7eb1
push edi
push str.__t_n_r
call fcn.0047dbb7
add esp, 8
test eax, eax
jne 0x4a7a2a
xor dword [ebp - 0x328], 0x10
mov ebx, 2
mov dword [ebp - 0x334], 1
mov dword [ebp - 0x32c], 0x4dad58
mov edx, dword [ebp - 0x328]
add dword [ebp - 0x330], 2
mov eax, dword [ebp - 0x330]
movzx edi, word [eax]
test edi, edi
jne 0x4a7630
mov esi, dword [ebp - 0x338]
mov ecx, dword [ebp - 0x33c]
sub eax, dword [ecx + 0xc]
sar eax, 1
dec eax
mov dword [ebp - 0x340], eax
cmp ebx, 4
je 0x4a7dbd
cmp ebx, 2
je 0x4a7dbd
mov eax, 0x4dad50
test dl, 0x20
jne 0x4a7e5b
cmp ebx, 0x40
je 0x4a7e5b
cmp ebx, 1
jne 0x4a7e2c
mov eax, 0x4dad38
jmp 0x4a7e60
test dl, 1
je 0x4a7bbc
mov ecx, 1
xor edx, ecx
mov dword [ebp - 0x328], edx
cmp edi, 0x60
ja 0x4a7b8e
cmp edi, 0x40
jbe 0x4a7ac9
cmp edi, 0x5b
jb 0x4a7b8e
cmp edi, 0x5f
je 0x4a7b8e
cmp edi, 0x3a
je 0x4a7b8e
cmp edi, 0x2f
jne 0x4a7af4
mov dword [ebp - 0x32c], 0x4dad34
mov dword [ebp - 0x334], ecx
xor ebx, ebx
jmp 0x4a7b23
cmp edi, 0x21
jne 0x4a7b07
or edx, 2
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
cmp edi, 0x3f
jne 0x4a7b41
mov dword [ebp - 0x32c], 0x4dad2c
mov dword [ebp - 0x334], 2
lea ebx, [edi - 0x2f]
mov eax, dword [ebp - 0x330]
mov esi, dword [ebp - 0x33c]
sub eax, dword [esi + 0xc]
sar eax, 1
add eax, ecx
mov dword [ebp - 0x344], eax
jmp 0x4a7a30
mov dword [ebp - 0x334], ecx
mov ecx, dword [ebp - 0x340]
push ecx
push str.tag_name_character
lea edx, [ebp - 0x324]
push str.Incorrect__s_at_offset__d
push edx
mov dword [ebp - 0x32c], 0x4dad34
call fcn.00480a5a
mov ecx, dword [ebp - 0x338]
add esp, 0x10
lea eax, [ebp - 0x324]
add ecx, 0x10
push eax
call fcn.00401d77
or ebx, 0xffffffff
jmp 0x4a7a2a
mov eax, dword [ebp - 0x330]
mov dword [ebp - 0x334], ecx
mov ebx, ecx
mov ecx, dword [ebp - 0x33c]
sub eax, dword [ecx + 0xc]
mov dword [ebp - 0x32c], 0x4dad34
sar eax, 1
mov dword [ebp - 0x344], eax
jmp 0x4a7a30
test dl, 2
je 0x4a7c7e
xor edx, 2
mov dword [ebp - 0x328], edx
cmp edi, 0x2d
jne 0x4a7be1
or edx, 4
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
cmp edi, 0x5b
jne 0x4a7bf9
test dl, 0x20
jne 0x4a7c11
or edx, 8
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
cmp edi, 0x44
jne 0x4a7c11
test dl, 0x20
jne 0x4a7c11
or edx, 0x20
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
push edi
push 0x4dacc8
call fcn.0047dbb7
add esp, 8
mov dword [ebp - 0x32c], 0x4dad34
mov dword [ebp - 0x334], 1
test eax, eax
je 0x4a7c41
mov ebx, 0x40
jmp 0x4a7a2a
mov edx, dword [ebp - 0x340]
push edx
push str.__tag
lea eax, [ebp - 0x25c]
push str.Incorrect__s_at_offset__d
push eax
call fcn.00480a5a
mov ecx, dword [ebp - 0x338]
add esp, 0x10
lea edx, [ebp - 0x25c]
add ecx, 0x10
push edx
call fcn.00401d77
or ebx, 0xffffffff
jmp 0x4a7a2a
test dl, 4
je 0x4a7cfe
xor edx, 4
mov dword [ebp - 0x328], edx
cmp edi, 0x2d
jne 0x4a7cad
mov dword [ebp - 0x32c], 0x4dacb4
mov dword [ebp - 0x334], 3
lea ebx, [edi - 0xd]
jmp 0x4a7a30
mov eax, dword [ebp - 0x340]
push eax
push str.comment_tag
lea ecx, [ebp - 0x194]
push str.Incorrect__s_at_offset__d
push ecx
mov dword [ebp - 0x32c], 0x4dad34
mov dword [ebp - 0x334], 1
call fcn.00480a5a
mov ecx, dword [ebp - 0x338]
add esp, 0x10
lea edx, [ebp - 0x194]
add ecx, 0x10
push edx
call fcn.00401d77
or ebx, 0xffffffff
jmp 0x4a7a2a
test dl, 8
je 0x4a7d7e
xor edx, 8
mov dword [ebp - 0x328], edx
cmp edi, 0x43
jne 0x4a7d2d
mov dword [ebp - 0x32c], 0x4dac94
mov dword [ebp - 0x334], 3
lea ebx, [edi - 0x3b]
jmp 0x4a7a30
mov eax, dword [ebp - 0x340]
push eax
push 0x4dad50
lea ecx, [ebp - 0xcc]
push str.Incorrect__s_at_offset__d
push ecx
mov dword [ebp - 0x32c], 0x4dad34
mov dword [ebp - 0x334], 1
call fcn.00480a5a
mov ecx, dword [ebp - 0x338]
add esp, 0x10
lea edx, [ebp - 0xcc]
add ecx, 0x10
push edx
call fcn.00401d77
or ebx, 0xffffffff
jmp 0x4a7a2a
test dl, 0x20
je 0x4a7a30
cmp edi, 0x3c
jne 0x4a7d9a
or edx, 1
mov dword [ebp - 0x328], edx
jmp 0x4a7a30
cmp edi, 0x3e
jne 0x4a7a30
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x33c]
sub eax, dword [ecx + 0xc]
lea ebx, [edi + 2]
sar eax, 1
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x33c]
inc eax
mov dword [edx + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx], ebx
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.0047e4d2
mov esp, ebp
pop ebp
ret
cmp edi, 0x3c
jne 0x4a7e02
mov dword [ebp - 0x328], 1
jmp 0x4a7a2a
push edi
push str.__t_n_r
mov ebx, 4
call fcn.0047dbb7
add esp, 8
test eax, eax
je 0x4a7a11
mov dword [ebp - 0x328], 0x10
jmp 0x4a7a2a
test ebx, ebx
jne 0x4a7e37
mov eax, str.Element_end_tag
jmp 0x4a7e60
cmp ebx, 8
jne 0x4a7e43
mov eax, str.CDATA_Section
jmp 0x4a7e60
cmp ebx, 0x10
jne 0x4a7e4f
mov eax, str.Processing_instruction
jmp 0x4a7e60
cmp ebx, 0x20
jne 0x4a7e60
mov eax, str.Comment
jmp 0x4a7e60
mov eax, str.Doctype
mov ecx, dword [esi + 4]
push ecx
push eax
lea edx, [ebp - 0xcc]
push str._s_at_offset__d_unterminated
push edx
or ebx, 0xffffffff
call fcn.00480a5a
add esp, 0x10
lea eax, [ebp - 0xcc]
lea ecx, [esi + 0x10]
push eax
call fcn.00401d77
jmp 0x4a7dbd
push 0x80070057
call fcn.00401000
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x33c]
sub eax, dword [ecx + 0xc]
sar eax, 1
dec eax
jmp 0x4a7db7
mov eax, dword [ebp - 0x330]
mov edx, dword [ebp - 0x33c]
sub eax, dword [edx + 0xc]
mov ebx, 4
sar eax, 1
dec eax
jmp 0x4a7db7