Function at 0x45f890
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48c016
mov eax, dword fs:[0]
push eax
sub esp, 0x18c
mov eax, dword [0x4b0070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x170], esi
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x184], eax
xor ebx, ebx
mov dword [ebp - 0x178], ecx
or edx, 0xffffffff
mov dword [ebp - 0x190], ecx
xor edi, edi
mov dword [ebp - 0x18c], ecx
xor eax, eax
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x194], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x174], ebx
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x180], edi
lea eax, [eax + ecx*2]
movzx esi, word [eax]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x188], ebx
test esi, esi
jne 0x45fa07
mov ecx, dword [ebp - 0x170]
sub eax, dword [ecx + 0xc]
sar eax, 1
mov dword [ecx + 8], eax
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x460409
mov edi, dword [ecx + 0xcc]
call fcn.0045eff0
test al, al
je 0x45f9da
mov eax, dword [ebp - 0x184]
mov esi, dword [ebp - 0x170]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
sub edx, ecx
mov eax, dword [eax + 0xcc]
test eax, eax
je 0x45f9b2
mov esi, dword [ebp - 0x184]
sub ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x180]
mov esi, dword [ebp - 0x170]
test ecx, ecx
je 0x45f9a1
sub ecx, eax
mov dword [ebp - 0x180], ecx
jmp 0x45f9af
cmp dword [ebp - 0x190], 0
je 0x45f9af
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov eax, dword [ebp - 0x184]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
add ecx, edx
mov eax, dword [eax + 0x50]
cmp dword [eax + 0x14], 8
jb 0x45f9cb
mov eax, dword [eax]
mov dword [esi + 0xc], eax
lea eax, [eax + ecx*2]
movzx esi, word [eax]
mov dword [ebp - 0x17c], eax
test edi, edi
je 0x45f9ed
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x1c]
mov dword [eax + 0xcc], edi
mov edx, dword [ebp - 0x16c]
test esi, esi
je 0x460409
mov edi, dword [ebp - 0x180]
mov eax, dword [ebp - 0x17c]
lea ecx, [esi - 9]
test edi, edi
je 0x45fa5f
cmp ecx, 0x35
ja 0x460401
cmp byte [esi + 0x4a5de3], 0
je 0x460401
mov edx, dword [ebp - 0x170]
sub eax, dword [edx + 0xc]
sar eax, 1
mov dword [ebp - 0x190], eax
dec eax
sub dword [ebp - 0x190], edi
mov dword [edx], edi
mov edi, edx
mov edx, dword [ebp - 0x16c]
mov dword [edi + 4], eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x180], edi
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x174], 0
je 0x45fd93
cmp esi, 0x3e
jne 0x45fb96
test bl, 0xc0
jne 0x45fbad
mov esi, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x17c]
sub ecx, dword [esi + 0xc]
sar ecx, 1
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov esi, dword [ebp - 0x178]
cmp esi, 1
jne 0x45faf1
mov dword [ebp - 0x174], 0
cmp edx, esi
jne 0x45fb53
cmp dword [ebp - 0x18c], 0x2f
jne 0x45fb53
mov ecx, dword [ebp - 0x194]
test ecx, ecx
je 0x45fae2
test ebx, 0x200
je 0x45fae2
lea eax, [ecx - 9]
cmp eax, 0x1e
ja 0x45fb53
cmp byte [ecx + 0x4a5e1b], 0
je 0x45fb53
mov eax, dword [ebp - 0x184]
or dword [eax + 0xc], 0x10000
jmp 0x45fb53
cmp ecx, esi
jle 0x45fb76
mov edx, dword [ebp - 0x17c]
lea eax, [esi + esi]
mov edi, dword [ebp - 0x174]
sub edx, eax
add edx, 2
sub edi, edx
nop
sub esi, 1
je 0x45fb43
movzx ecx, word [edx]
lea eax, [edi + edx]
add edx, 2
cmp cx, word [eax]
je 0x45fb10
mov eax, dword [ebp - 0x17c]
and ebx, 0xfffffdff
mov edx, dword [ebp - 0x16c]
add eax, 2
mov edi, dword [ebp - 0x180]
jmp 0x45f91c
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x174], 0
and ebx, 0xfffffdff
test bl, 0x20
je 0x4604cc
mov eax, dword [ebp - 0x17c]
mov edi, dword [ebp - 0x180]
add eax, 2
jmp 0x45f91c
mov eax, dword [ebp - 0x17c]
and ebx, 0xfffffdff
mov ecx, dword [ebp - 0x174]
add eax, 2
mov dword [ebp - 0x174], ecx
jmp 0x45f91c
cmp esi, 0x3c
jne 0x45fbad
cmp edx, 2
je 0x4604b8
cmp edx, 0xffffffff
je 0x4604b8
test dl, 1
je 0x45fd46
test ebx, 0x2c0
je 0x45fc69
cmp esi, 0x22
jne 0x45fbf1
test bl, bl
jns 0x45fc1e
mov eax, dword [ebp - 0x18c]
xor ebx, 0x80
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
cmp esi, 0x27
jne 0x45fc1e
test bl, 0x40
je 0x45fc1e
mov eax, dword [ebp - 0x18c]
xor ebx, 0x40
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
test ebx, 0x200
je 0x45fd26
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x45fd26
cmp byte [esi + 0x4a5a7f], 0
je 0x45fd26
mov eax, dword [ebp - 0x18c]
xor ebx, 0x200
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
mov eax, ebx
and eax, 0x100
cmp esi, 0x22
jne 0x45fca3
test eax, eax
je 0x45fd26
mov eax, dword [ebp - 0x18c]
xor ebx, 0x180
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
cmp esi, 0x27
jne 0x45fcd2
test eax, eax
je 0x45fd26
mov eax, dword [ebp - 0x18c]
xor ebx, 0x140
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
cmp esi, 0x3d
jne 0x45fd09
cmp dword [ebp - 0x18c], esi
je 0x45fd09
test eax, eax
jne 0x45fd20
mov eax, dword [ebp - 0x18c]
xor ebx, 0x100
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
test eax, eax
je 0x45fd26
cmp esi, 9
jb 0x45fd20
cmp esi, 0x20
ja 0x45fd20
cmp byte [esi + 0x4a5a7f], 0
jne 0x45fd26
xor ebx, 0x300
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x18c], esi
add eax, 2
jmp 0x45f91c
test dl, 0x40
je 0x4603fb
cmp esi, 0x22
jne 0x45fd71
test bl, 0x40
jne 0x4603fb
mov eax, dword [ebp - 0x17c]
xor ebx, 0x80
add eax, 2
jmp 0x45f91c
cmp esi, 0x27
jne 0x4603fb
test bl, bl
js 0x4603fb
mov eax, dword [ebp - 0x17c]
xor ebx, 0x40
add eax, 2
jmp 0x45f91c
test ebx, ebx
je 0x46039c
test bl, 0x10
je 0x45fdf6
cmp esi, 0x3c
je 0x460509
cmp ecx, 0x17
ja 0x45fdbb
movsx eax, byte [esi + 0x4a5a7f]
test eax, eax
jne 0x45fddc
jmp 0x45fdbd
xor eax, eax
mov edx, 2
mov dword [ebp - 0x174], 0x4a28f8
mov dword [ebp - 0x178], 1
mov dword [ebp - 0x16c], edx
xor ebx, 0x10
test eax, eax
mov eax, dword [ebp - 0x17c]
cmovne ebx, dword [ebp - 0x188]
add eax, 2
jmp 0x45f91c
test bl, 1
je 0x45ffd9
xor ebx, 1
cmp esi, 0x60
ja 0x45ffae
cmp esi, 0x40
jbe 0x45fe19
cmp esi, 0x5b
jb 0x45ffae
cmp esi, 0x5f
je 0x45ffae
cmp esi, 0x3a
je 0x45ffae
cmp esi, 0x2f
jne 0x45fe59
mov eax, dword [ebp - 0x170]
xor edx, edx
mov edi, dword [ebp - 0x17c]
mov dword [ebp - 0x174], 0x4a28fc
sub edi, dword [eax + 0xc]
sar edi, 1
inc edi
mov dword [ebp - 0x180], edi
jmp 0x4603eb
cmp esi, 0x21
jne 0x45fe6f
mov eax, dword [ebp - 0x17c]
or ebx, 2
add eax, 2
jmp 0x45f91c
mov eax, dword [ebp - 0x170]
cmp esi, 0x3f
jne 0x45feb7
mov edi, dword [ebp - 0x17c]
lea edx, [esi - 0x2f]
sub edi, dword [eax + 0xc]
mov eax, dword [ebp - 0x17c]
sar edi, 1
inc edi
mov dword [ebp - 0x174], 0x4a5e44
mov dword [ebp - 0x178], 2
add eax, 2
mov dword [ebp - 0x180], edi
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
mov edi, dword [ebp - 0x184]
mov ecx, 1
mov esi, dword [eax + 8]
add edi, 0x10
mov dword [ebp - 0x174], 0x4a28fc
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x188], esi
cmp dword [edi + 0x10], 0x3e8
jge 0x45ff91
cmp dword [edi + 0x14], 8
mov eax, edi
push ecx
mov ecx, esp
jb 0x45fef8
mov eax, dword [edi]
mov dword [ecx], eax
lea ecx, [ebp - 0xa8]
call fcn.004650d0
push 2
push 0x499b14
push str.first_tag_syntax
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], 0
call fcn.00463af0
cmp esi, 0xffffffff
je 0x45ff59
push dword [ebp - 0x188]
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x44]
push 0x49a840
push eax
call fcn.00459e00
add esp, 0xc
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0xa8]
push 0
push eax
push str.offset
push esi
call fcn.00462890
lea eax, [ebp - 0xa8]
cmp edi, eax
je 0x45ff7f
cmp dword [ebp - 0x94], 8
mov ecx, edi
push dword [ebp - 0x98]
cmovae eax, dword [ebp - 0xa8]
push eax
call fcn.00413340
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], 0xffffffff
call fcn.00460530
mov eax, dword [ebp - 0x17c]
or edx, 0xffffffff
mov edi, dword [ebp - 0x180]
add eax, 2
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
mov eax, dword [ebp - 0x170]
mov edx, 1
mov edi, dword [ebp - 0x17c]
mov dword [ebp - 0x174], 0x4a28fc
sub edi, dword [eax + 0xc]
sar edi, 1
mov dword [ebp - 0x180], edi
jmp 0x4603eb
test bl, 2
je 0x460255
xor ebx, 2
cmp esi, 0x2d
jne 0x45fffb
mov eax, dword [ebp - 0x17c]
or ebx, 4
add eax, 2
jmp 0x45f91c
test bl, 0x20
je 0x460129
lea eax, [esi - 0x41]
cmp eax, 0xd
ja 0x460029
cmp byte [esi + 0x4a5e2f], 0
je 0x460029
mov dword [ebp - 0x174], 0x4a28fc
mov edx, 0x40
jmp 0x4603eb
mov edi, dword [ebp - 0x184]
mov ecx, 1
mov eax, dword [ebp - 0x170]
add edi, 0x10
mov dword [ebp - 0x174], 0x4a28fc
mov dword [ebp - 0x178], ecx
cmp dword [edi + 0x10], 0x3e8
mov esi, dword [eax + 8]
mov dword [ebp - 0x188], esi
jge 0x45ff91
cmp dword [edi + 0x14], 8
mov eax, edi
push ecx
mov ecx, esp
jb 0x460070
mov eax, dword [edi]
mov dword [ecx], eax
lea ecx, [ebp - 0x108]
call fcn.004650d0
push 2
push 0x499b14
push str.doctype_tag_syntax
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 1
call fcn.00463af0
cmp esi, 0xffffffff
je 0x4600d4
push dword [ebp - 0x188]
mov esi, dword [ebp - 0xd4]
lea eax, [ebp - 0x44]
push 0x49a840
push eax
call fcn.00459e00
add esp, 0xc
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x108]
push 0
push eax
push str.offset
push esi
call fcn.00462890
lea eax, [ebp - 0x108]
cmp edi, eax
je 0x4600fa
cmp dword [ebp - 0xf4], 8
mov ecx, edi
push dword [ebp - 0xf8]
cmovae eax, dword [ebp - 0x108]
push eax
call fcn.00413340
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 0xffffffff
call fcn.00460530
mov eax, dword [ebp - 0x17c]
or edx, 0xffffffff
mov edi, dword [ebp - 0x180]
add eax, 2
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
cmp esi, 0x5b
jne 0x46013f
mov eax, dword [ebp - 0x17c]
or ebx, 8
add eax, 2
jmp 0x45f91c
cmp esi, 0x44
jne 0x460155
mov eax, dword [ebp - 0x17c]
or ebx, 0x20
add eax, 2
jmp 0x45f91c
mov edi, dword [ebp - 0x184]
mov ecx, 1
mov eax, dword [ebp - 0x170]
add edi, 0x10
mov dword [ebp - 0x174], 0x4a28fc
mov dword [ebp - 0x178], ecx
cmp dword [edi + 0x10], 0x3e8
mov esi, dword [eax + 8]
mov dword [ebp - 0x188], esi
jge 0x45ff91
cmp dword [edi + 0x14], 8
mov eax, edi
push ecx
mov ecx, esp
jb 0x46019c
mov eax, dword [edi]
mov dword [ecx], eax
lea ecx, [ebp - 0x168]
call fcn.004650d0
push 2
push 0x499b14
push str.exclamation_tag_syntax
lea ecx, [ebp - 0x168]
mov dword [ebp - 4], 2
call fcn.00463af0
cmp esi, 0xffffffff
je 0x460200
push dword [ebp - 0x188]
mov esi, dword [ebp - 0x134]
lea eax, [ebp - 0x44]
push 0x49a840
push eax
call fcn.00459e00
add esp, 0xc
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x168]
push 0
push eax
push str.offset
push esi
call fcn.00462890
lea eax, [ebp - 0x168]
cmp edi, eax
je 0x460226
cmp dword [ebp - 0x154], 8
mov ecx, edi
push dword [ebp - 0x158]
cmovae eax, dword [ebp - 0x168]
push eax
call fcn.00413340
lea ecx, [ebp - 0x168]
mov dword [ebp - 4], 0xffffffff
call fcn.00460530
mov eax, dword [ebp - 0x17c]
or edx, 0xffffffff
mov edi, dword [ebp - 0x180]
add eax, 2
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
test bl, 4
je 0x4602ee
xor ebx, 4
cmp esi, 0x2d
jne 0x460293
mov eax, dword [ebp - 0x17c]
mov edx, 0x20
mov dword [ebp - 0x174], 0x4a5ed8
add eax, 2
mov dword [ebp - 0x178], 3
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
mov eax, dword [ebp - 0x170]
push 0xffffffffffffffff
mov dword [ebp - 0x178], 1
push dword [eax + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.comment_tag_syntax
mov ecx, dword [ebp - 0x184]
xor edx, edx
mov dword [ebp - 0x174], 0x4a28fc
lea ecx, [ecx + 0x10]
call fcn.0045c2d0
mov eax, dword [ebp - 0x17c]
or edx, 0xffffffff
add esp, 0x10
mov dword [ebp - 0x16c], edx
add eax, 2
jmp 0x45f91c
test bl, 8
je 0x460355
xor ebx, 8
cmp esi, 0x43
jne 0x460328
mov eax, dword [ebp - 0x17c]
mov edx, 8
mov dword [ebp - 0x174], 0x4a5f08
add eax, 2
mov dword [ebp - 0x178], 3
mov dword [ebp - 0x16c], edx
jmp 0x45f91c
mov eax, dword [ebp - 0x170]
mov ecx, 1
push 0xffffffffffffffff
mov dword [ebp - 0x178], ecx
push dword [eax + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.cdata_section_syntax
jmp 0x4602ba
test bl, 0x20
je 0x4603fb
cmp esi, 0x3c
jne 0x460374
mov eax, dword [ebp - 0x17c]
or ebx, 1
add eax, 2
jmp 0x45f91c
cmp esi, 0x3e
jne 0x4603fb
mov esi, dword [ebp - 0x170]
mov eax, dword [ebp - 0x17c]
sub eax, dword [esi + 0xc]
sar eax, 1
inc eax
mov dword [esi + 8], eax
mov esi, 0x40
jmp 0x4604d2
cmp esi, 0x3c
jne 0x4603b2
mov eax, dword [ebp - 0x17c]
lea ebx, [esi - 0x3b]
add eax, 2
jmp 0x45f91c
mov edx, 4
mov dword [ebp - 0x16c], edx
cmp ecx, 0x17
ja 0x4603dc
cmp byte [esi + 0x4a5a7f], 0
je 0x4603dc
mov eax, dword [ebp - 0x17c]
lea ebx, [edx + 0xc]
add eax, 2
jmp 0x45f91c
mov dword [ebp - 0x174], 0x4a28f8
mov edx, 2
mov dword [ebp - 0x178], 1
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x17c]
add eax, 2
jmp 0x45f91c
mov edi, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x170]
mov eax, dword [edi + 4]
cmp dword [ecx + 8], eax
jne 0x460434
mov dword [edi + 8], 0
mov eax, 0xfffffffe
mov dword [edi], 0
jmp 0x4604eb
cmp edx, 4
je 0x4604cc
cmp edx, 2
je 0x4604cc
mov ecx, 0x4a5d18
test bl, 0x20
jne 0x460490
cmp edx, 0x40
je 0x460490
cmp edx, 1
jne 0x460461
mov ecx, str.start_tag
jmp 0x460495
test edx, edx
jne 0x46046c
mov ecx, str.end_tag
jmp 0x460495
cmp edx, 8
jne 0x460478
mov ecx, str.cdata_section
jmp 0x460495
cmp edx, 0x10
jne 0x460484
mov ecx, str.processing_instruction
jmp 0x460495
cmp edx, 0x20
jne 0x460495
mov ecx, str.comment
jmp 0x460495
mov ecx, str.document_type
or esi, 0xffffffff
push esi
push eax
push ecx
mov eax, esp
lea edx, [esi + 3]
push ecx
mov dword [eax], ecx
mov eax, esp
lea ecx, [edi + 0x10]
mov dword [eax], str.unterminated_tag_syntax
call fcn.0045c2d0
add esp, 0x10
jmp 0x4604d2
mov esi, dword [ebp - 0x170]
mov eax, dword [ebp - 0x17c]
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 8], eax
mov esi, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x184]
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax], esi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046780a
mov esp, ebp
pop ebp
ret 4
mov esi, dword [ebp - 0x170]
mov eax, dword [ebp - 0x17c]
sub eax, dword [esi + 0xc]
sar eax, 1
mov dword [esi + 8], eax
mov esi, 4
jmp 0x4604d2