Function at 0x4032a9
Capabilities:
Parse credit card information

Disassembly:
push 0x4c
mov eax, 0x42b052
call fcn.0042864a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
or dword [ebp - 0x18], 0xffffffff
xor edx, edx
mov dword [ebx + 4], ecx
mov dword [ebx + 0xc], edx
mov ecx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x2c], ecx
lea ecx, [edi + ecx*2]
movzx edi, word [ecx]
xor esi, esi
cmp di, dx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], ecx
jne 0x4032ff
push 0xfffffffffffffffe
mov dword [ebx + 8], edx
mov dword [ebx], edx
pop eax
jmp 0x403965
movzx edi, di
cmp edi, edx
mov dword [ebp - 0x14], edi
je 0x4035a8
mov edi, 0x431688
jmp 0x403316
xor edx, edx
cmp esi, edx
je 0x40338d
push dword [ebp - 0x14]
push str.__t_n_r__
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
je 0x40358d
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov ecx, dword [ebp - 0x24]
sub ecx, edx
sar ecx, 1
sub ecx, esi
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x34], ecx
jne 0x403355
lea ecx, [ecx + esi - 1]
mov dword [eax], esi
mov dword [eax + 4], ecx
jmp 0x403380
mov eax, dword [ebp - 0x34]
lea ecx, [eax + eax]
push ecx
mov ecx, dword [ebp - 0x28]
lea ecx, [edx + ecx*2]
push ecx
lea esi, [ebx + 0x10]
push eax
call fcn.0040141c
push eax
call fcn.00427d64
mov eax, dword [ebp - 0x34]
add esp, 0xc
call fcn.004059d6
mov eax, dword [ebp + 8]
xor esi, esi
and dword [ebp - 0x34], esi
and dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
jmp 0x403390
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x24]
je 0x403542
cmp dword [ebp - 0x14], 0x3e
jne 0x403446
test byte [ebp - 0x10], 0xc0
jne 0x403460
mov ecx, edx
sub ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x20]
sar ecx, 1
cmp eax, 1
mov dword [ebp - 0x2c], ecx
jne 0x4033f5
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x18], eax
jne 0x403434
cmp dword [ebp - 0x30], 0x2f
jne 0x403434
cmp dword [ebp - 0x34], 0
je 0x4033ec
push dword [ebp - 0x34]
push 0x431674
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
je 0x403434
or dword [ebx + 0xc], 0x10000
jmp 0x403434
cmp ecx, eax
jle 0x40342a
lea ecx, [eax + eax]
sub edx, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edx + 2]
sub eax, ecx
mov dword [ebp - 0x38], eax
jmp 0x403411
mov eax, dword [ebp - 0x38]
dec dword [ebp - 0x14]
je 0x403426
mov dx, word [ecx]
mov ax, word [eax + ecx]
inc ecx
inc ecx
cmp dx, ax
je 0x40340e
jmp 0x40342a
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0
jne 0x40358d
test byte [ebp - 0x10], 0x20
je 0x403950
mov esi, dword [ebp - 0x28]
jmp 0x40358d
cmp dword [ebp - 0x14], 0x3c
jne 0x403460
cmp dword [ebp - 0x18], 2
je 0x403a41
cmp dword [ebp - 0x18], 0xffffffff
je 0x403a41
test byte [ebp - 0x18], 1
je 0x403515
test byte [ebp - 0x10], 0xc0
je 0x40349b
cmp dword [ebp - 0x14], 0x22
jne 0x403489
test byte [ebp - 0x10], 0x80
je 0x403507
xor dword [ebp - 0x10], 0x80
jmp 0x403507
cmp dword [ebp - 0x14], 0x27
jne 0x403507
test byte [ebp - 0x10], 0x40
je 0x403507
xor dword [ebp - 0x10], 0x40
jmp 0x403507
cmp dword [ebp - 0x14], 0x22
jne 0x4034b2
test word [ebp - 0x10], 0x100
je 0x403507
xor dword [ebp - 0x10], 0x180
jmp 0x403507
cmp dword [ebp - 0x14], 0x27
jne 0x4034c9
test word [ebp - 0x10], 0x100
je 0x403507
xor dword [ebp - 0x10], 0x140
jmp 0x403507
cmp dword [ebp - 0x14], 0x3d
jne 0x4034e4
cmp dword [ebp - 0x30], 0x3d
je 0x4034e4
mov eax, pe_nt_image_headers32
test dword [ebp - 0x10], eax
jne 0x4034e4
xor dword [ebp - 0x10], eax
jmp 0x403507
test word [ebp - 0x10], 0x100
je 0x403507
push dword [ebp - 0x14]
push 0x431558
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
jne 0x403507
xor dword [ebp - 0x10], 0x100
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
jmp 0x40358d
test byte [ebp - 0x18], 0x40
je 0x40358d
cmp dword [ebp - 0x14], 0x22
jne 0x403530
test byte [ebp - 0x10], 0x40
jne 0x40358d
xor dword [ebp - 0x10], 0x80
jmp 0x40358d
cmp dword [ebp - 0x14], 0x27
jne 0x40358d
test byte [ebp - 0x10], 0x80
jne 0x40358d
xor dword [ebp - 0x10], 0x40
jmp 0x40358d
cmp dword [ebp - 0x10], 0
je 0x40396b
test byte [ebp - 0x10], 0x10
je 0x4035f1
cmp dword [ebp - 0x14], 0x3c
je 0x403a4f
push dword [ebp - 0x14]
push 0x431558
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
jne 0x40358d
xor dword [ebp - 0x10], 0x10
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x1c], 0x431684
mov dword [ebp - 0x20], 1
add dword [ebp - 0x24], 2
mov eax, dword [ebp - 0x24]
movzx eax, word [eax]
test eax, eax
mov dword [ebp - 0x14], eax
jne 0x403314
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
sub ecx, dword [eax + 0xc]
sar ecx, 1
dec ecx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, 4
je 0x403950
cmp ecx, 2
je 0x403950
test byte [ebp - 0x10], 0x20
mov eax, 0x431584
jne 0x4039d7
cmp ecx, 0x40
je 0x4039d7
cmp ecx, 1
jne 0x4039a8
mov eax, str.Element_tag
jmp 0x4039dc
test byte [ebp - 0x10], 1
je 0x403704
mov ecx, dword [ebp - 0x14]
xor dword [ebp - 0x10], 1
cmp ecx, 0x60
ja 0x4036e9
cmp ecx, 0x40
jbe 0x403619
cmp ecx, 0x5b
jb 0x4036e9
cmp ecx, 0x5f
je 0x4036e9
cmp ecx, 0x3a
je 0x4036e9
cmp ecx, 0x2f
jne 0x403647
and dword [ebp - 0x18], 0
mov esi, edx
sub esi, dword [eax + 0xc]
mov dword [ebp - 0x1c], edi
sar esi, 1
inc esi
mov dword [ebp - 0x28], esi
jmp 0x403586
cmp ecx, 0x21
jne 0x403655
or dword [ebp - 0x10], 2
jmp 0x40358d
cmp ecx, 0x3f
jne 0x40367c
mov esi, edx
sub esi, dword [eax + 0xc]
mov dword [ebp - 0x1c], 0x43168c
sar esi, 1
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x18], 0x10
inc esi
jmp 0x4036fc
push str.Incorrect
lea esi, [ebx + 0x10]
push esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], 1
call fcn.00401774
push str.tag_name_character
push esi
call fcn.00405749
push dword [ebp - 0x2c]
lea esi, [ebp - 0x40]
call fcn.00401b8c
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x3c]
mov dword [esp], str._at_offset
push ecx
mov ecx, eax
call fcn.0040583f
pop ecx
pop ecx
lea ecx, [ebx + 0x10]
push ecx
mov byte [ebp - 4], 3
call fcn.00405a62
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x40]
jmp 0x403907
xor ecx, ecx
mov esi, edx
sub esi, dword [eax + 0xc]
inc ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], ecx
sar esi, 1
mov dword [ebp - 0x28], esi
jmp 0x40358d
test byte [ebp - 0x10], 2
je 0x4037d8
xor dword [ebp - 0x10], 2
cmp dword [ebp - 0x14], 0x2d
jne 0x403721
or dword [ebp - 0x10], 4
jmp 0x40358d
cmp dword [ebp - 0x14], 0x5b
jne 0x403736
test byte [ebp - 0x10], 0x20
jne 0x40374b
or dword [ebp - 0x10], 8
jmp 0x40358d
cmp dword [ebp - 0x14], 0x44
jne 0x40374b
test byte [ebp - 0x10], 0x20
jne 0x40374b
or dword [ebp - 0x10], 0x20
jmp 0x40358d
push dword [ebp - 0x14]
push 0x4316d4
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], 1
je 0x403775
mov dword [ebp - 0x18], 0x40
jmp 0x40358d
push str.Incorrect
lea esi, [ebx + 0x10]
push esi
call fcn.00401774
push str.__tag
push esi
call fcn.00405749
push dword [ebp - 0x2c]
lea esi, [ebp - 0x48]
call fcn.00401b8c
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x44]
mov dword [esp], str._at_offset
push ecx
mov ecx, eax
call fcn.0040583f
pop ecx
pop ecx
lea ecx, [ebx + 0x10]
push ecx
mov byte [ebp - 4], 5
call fcn.00405a62
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
jmp 0x403907
test byte [ebp - 0x10], 4
je 0x403873
xor dword [ebp - 0x10], 4
cmp dword [ebp - 0x14], 0x2d
jne 0x403806
mov dword [ebp - 0x1c], 0x4316e8
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x18], 0x20
jmp 0x40358d
push str.Incorrect
lea esi, [ebx + 0x10]
push esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], 1
call fcn.00401774
push str.comment_tag
push esi
call fcn.00405749
push dword [ebp - 0x2c]
lea esi, [ebp - 0x50]
call fcn.00401b8c
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x4c]
mov dword [esp], str._at_offset
push ecx
mov ecx, eax
call fcn.0040583f
pop ecx
pop ecx
lea ecx, [ebx + 0x10]
push ecx
mov byte [ebp - 4], 7
call fcn.00405a62
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x50]
jmp 0x403907
test byte [ebp - 0x10], 8
je 0x403918
push 8
pop eax
xor dword [ebp - 0x10], eax
cmp dword [ebp - 0x14], 0x43
jne 0x40389f
mov dword [ebp - 0x1c], 0x431708
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x18], eax
jmp 0x40358d
push str.Incorrect
lea esi, [ebx + 0x10]
push esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], 1
call fcn.00401774
push 0x431584
push esi
call fcn.00405749
push dword [ebp - 0x2c]
lea esi, [ebp - 0x58]
call fcn.00401b8c
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x54]
mov dword [esp], str._at_offset
push ecx
mov ecx, eax
call fcn.0040583f
pop ecx
pop ecx
lea ecx, [ebx + 0x10]
push ecx
mov byte [ebp - 4], 9
call fcn.00405a62
mov eax, dword [ebp - 0x54]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x58]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 0x18], 0xffffffff
jmp 0x40343e
test byte [ebp - 0x10], 0x20
je 0x40358d
cmp dword [ebp - 0x14], 0x3c
jne 0x403931
or dword [ebp - 0x10], 1
jmp 0x40358d
cmp dword [ebp - 0x14], 0x3e
jne 0x40358d
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
sub eax, dword [ecx + 0xc]
mov dword [ebp - 0x18], 0x40
sar eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
inc eax
mov dword [ecx + 8], eax
sub eax, dword [ebx + 4]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx], eax
call fcn.00428722
ret
cmp dword [ebp - 0x14], 0x3c
jne 0x40397d
mov dword [ebp - 0x10], 1
jmp 0x40358d
push dword [ebp - 0x14]
mov dword [ebp - 0x18], 4
push 0x431558
call dword [0x42d2c4]
test eax, eax
pop ecx
pop ecx
je 0x403578
mov dword [ebp - 0x10], 0x10
jmp 0x40358d
test ecx, ecx
jne 0x4039b3
mov eax, str.Element_end_tag
jmp 0x4039dc
cmp ecx, 8
jne 0x4039bf
mov eax, str.CDATA_Section
jmp 0x4039dc
cmp ecx, 0x10
jne 0x4039cb
mov eax, str.Processing_instruction
jmp 0x4039dc
cmp ecx, 0x20
jne 0x4039dc
mov eax, str.Comment
jmp 0x4039dc
mov eax, str.Doctype
or dword [ebp - 0x18], 0xffffffff
push eax
lea edi, [ebx + 0x10]
push edi
call fcn.00401774
push dword [ebx + 4]
lea esi, [ebp - 0x4c]
call fcn.00401b8c
and dword [ebp - 4], 0
lea ecx, [ebp - 0x50]
mov dword [esp], str._at_offset
push ecx
mov ecx, eax
call fcn.0040583f
pop ecx
pop ecx
push edi
mov byte [ebp - 4], 1
call fcn.00405a62
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
call fcn.00401518
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
call fcn.00401518
push str._unterminated
push edi
call fcn.00405749
jmp 0x403950
sub edx, dword [eax + 0xc]
sar edx, 1
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x403950
sub edx, dword [eax + 0xc]
mov dword [ebp - 0x18], 4
sar edx, 1
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x403950