Function at 0x427ae0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x1c0
mov eax, dword [0x48b998]
xor eax, esp
mov dword [esp + 0x1bc], eax
mov edx, dword [esp + 0x1c4]
mov ecx, dword [esp + 0x1c8]
mov eax, dword [edx + 8]
push ebx
push ebp
xor ebp, ebp
push esi
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebp
mov esi, dword [edx + 8]
push edi
mov edi, dword [edx + 0xc]
mov al, byte [edi + esi]
add edi, esi
or ebx, 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], edi
test al, al
jne 0x427b58
mov dword [ecx + 8], ebp
mov dword [ecx], ebp
lea eax, [ebp - 2]
jmp 0x4281f5
movsx eax, al
mov dword [esp + 0x14], eax
test eax, eax
je 0x427edd
test ebp, ebp
je 0x427c30
movsx ecx, byte [esp + 0x14]
push ecx
push str.__t_n_r__
call fcn.0044da9a
add esp, 8
test eax, eax
je 0x427ebb
mov eax, dword [esp + 0x24]
mov esi, edi
sub esi, dword [eax + 0xc]
sub esi, ebp
test ebx, ebx
jne 0x427ba4
lea edx, [esi + ebp - 1]
mov dword [eax], ebp
mov dword [eax + 4], edx
jmp 0x427c1a
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov edx, dword [eax - 8]
add edi, 0x10
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, esi
or ecx, edx
jge 0x427bca
push esi
mov ecx, edi
call fcn.0041b1e0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi]
push esi
add ecx, ebp
push ecx
push edx
call fcn.0044d4a0
add esp, 0xc
mov eax, esi
cmp esi, 0xffffffff
jne 0x427bfa
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x427c02
push ecx
push eax
call fcn.0044aabd
add esp, 8
test eax, eax
jl 0x4282b3
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x4282b3
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
mov edi, dword [esp + 0x2c]
mov byte [eax + ecx], 0
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x18], 0
je 0x427e6b
mov eax, dword [esp + 0x14]
cmp eax, 0x3e
jne 0x427d08
mov ecx, dword [esp + 0x10]
test cl, 0xc0
jne 0x427d23
mov eax, dword [esp + 0x1c]
mov esi, edi
sub esi, dword [edx + 0xc]
mov dword [esp + 0x38], esi
cmp eax, 1
jne 0x427cad
mov dword [esp + 0x18], 0
cmp ebx, eax
jne 0x427cfa
cmp dword [esp + 0x30], 0x2f
jne 0x427cfa
cmp dword [esp + 0x34], 0
je 0x427ca0
movsx edx, byte [esp + 0x34]
push edx
push str.__t_n_r_
call fcn.0044da9a
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x427cfa
mov eax, dword [esp + 0x20]
or dword [eax + 0xc], 0x10000
jmp 0x427cfa
cmp esi, eax
jle 0x427ebb
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
sub esi, ebp
inc esi
sub edi, esi
sub ebp, 1
je 0x427ce6
mov al, byte [esi]
mov dl, byte [edi + esi]
inc esi
cmp al, dl
je 0x427cc6
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
jmp 0x427ebb
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x18], 0
test cl, 0x20
je 0x4281dd
jmp 0x427ebb
cmp eax, 0x3c
jne 0x427d1f
cmp ebx, 2
je 0x4282bd
cmp ebx, 0xffffffff
je 0x4282bd
mov ecx, dword [esp + 0x10]
test bl, 1
je 0x427e3e
test cl, 0xc0
je 0x427d83
cmp eax, 0x22
jne 0x427d59
test cl, cl
jns 0x427e30
xor ecx, 0x80
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
cmp eax, 0x27
jne 0x427e30
test cl, 0x40
je 0x427e30
xor ecx, 0x40
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
cmp eax, 0x22
jne 0x427daf
test ecx, 0x100
je 0x427e30
xor ecx, 0x180
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
cmp eax, 0x27
jne 0x427dd7
test ecx, 0x100
je 0x427e30
xor ecx, 0x140
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
cmp eax, 0x3d
jne 0x427e05
cmp dword [esp + 0x30], eax
je 0x427e05
test ecx, 0x100
jne 0x427e0d
xor ecx, 0x100
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
test ecx, 0x100
je 0x427e30
movsx eax, byte [esp + 0x14]
push eax
push str.__t_n_r
call fcn.0044da9a
add esp, 8
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x427e30
xor dword [esp + 0x10], 0x100
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x427ebb
test bl, 0x40
je 0x427ebb
cmp eax, 0x22
jne 0x427e59
test cl, 0x40
jne 0x427ebb
xor ecx, 0x80
mov dword [esp + 0x10], ecx
jmp 0x427ebb
cmp eax, 0x27
jne 0x427ebb
test cl, cl
js 0x427ebb
xor ecx, 0x40
mov dword [esp + 0x10], ecx
jmp 0x427ebb
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42820e
test al, 0x10
je 0x427f21
cmp dword [esp + 0x14], 0x3c
je 0x4282c6
movsx edx, byte [esp + 0x14]
push edx
push str.__t_n_r
call fcn.0044da9a
add esp, 8
test eax, eax
jne 0x427ebb
xor dword [esp + 0x10], 0x10
mov ebx, 2
mov dword [esp + 0x18], 0x471c20
mov dword [esp + 0x1c], 1
push edi
call fcn.0044df77
mov edx, dword [esp + 0x28]
add edi, eax
movsx eax, byte [edi]
add esp, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], eax
test eax, eax
jne 0x427b67
sub edi, dword [edx + 0xc]
dec edi
mov esi, edi
cmp ebx, 4
je 0x4281dd
cmp ebx, 2
je 0x4281dd
test byte [esp + 0x10], 0x20
mov eax, 0x471c1c
jne 0x42827e
cmp ebx, 0x40
je 0x42827e
cmp ebx, 1
jne 0x42824f
mov eax, str.Element_tag
jmp 0x428283
test al, 1
je 0x428019
mov ecx, dword [esp + 0x14]
xor eax, 1
mov dword [esp + 0x10], eax
cmp ecx, 0x60
ja 0x427ffa
cmp ecx, 0x40
jbe 0x427f4b
cmp ecx, 0x5b
jb 0x427ffa
cmp ecx, 0x5f
je 0x427ffa
cmp ecx, 0x3a
je 0x427ffa
cmp ecx, 0x2f
jne 0x427f7b
mov ebp, edi
sub ebp, dword [edx + 0xc]
xor ebx, ebx
inc ebp
mov dword [esp + 0x18], 0x471c0c
mov dword [esp + 0x28], ebp
jmp 0x427eb3
cmp ecx, 0x21
jne 0x427f8c
or eax, 2
mov dword [esp + 0x10], eax
jmp 0x427ebb
cmp ecx, 0x3f
jne 0x427fb3
mov ebp, edi
sub ebp, dword [edx + 0xc]
mov dword [esp + 0x18], 0x471c08
inc ebp
mov dword [esp + 0x1c], 2
lea ebx, [ecx - 0x2f]
mov dword [esp + 0x28], ebp
jmp 0x427ebb
push esi
push str.tag_name_character
lea eax, [esp + 0x170]
push str.Incorrect__s_at_offset__d
push eax
mov dword [esp + 0x28], 0x471c0c
mov dword [esp + 0x2c], 1
call fcn.0044d3e4
add esp, 0x10
lea ecx, [esp + 0x168]
push ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x10
call fcn.0041bc40
or ebx, 0xffffffff
jmp 0x427ebb
mov ebp, edi
sub ebp, dword [edx + 0xc]
mov ebx, 1
mov dword [esp + 0x18], 0x471c0c
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebp
jmp 0x427ebb
test al, 2
je 0x4280cf
mov ecx, dword [esp + 0x14]
xor eax, 2
mov dword [esp + 0x10], eax
cmp ecx, 0x2d
jne 0x42803d
or eax, 4
mov dword [esp + 0x10], eax
jmp 0x427ebb
cmp ecx, 0x5b
jne 0x428052
test al, 0x20
jne 0x428067
or eax, 8
mov dword [esp + 0x10], eax
jmp 0x427ebb
cmp ecx, 0x44
jne 0x428067
test al, 0x20
jne 0x428067
or eax, 0x20
mov dword [esp + 0x10], eax
jmp 0x427ebb
movsx edx, byte [esp + 0x14]
push edx
push 0x471bd4
call fcn.0044da9a
add esp, 8
mov dword [esp + 0x18], 0x471c0c
mov dword [esp + 0x1c], 1
test eax, eax
je 0x428098
mov ebx, 0x40
jmp 0x427ebb
push esi
push str.__tag
lea eax, [esp + 0xa8]
push str.Incorrect__s_at_offset__d
push eax
call fcn.0044d3e4
add esp, 0x10
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x10
call fcn.0041bc40
or ebx, 0xffffffff
jmp 0x427ebb
test al, 4
je 0x428142
xor eax, 4
cmp dword [esp + 0x14], 0x2d
mov dword [esp + 0x10], eax
jne 0x4280fb
mov dword [esp + 0x18], 0x471bc8
mov dword [esp + 0x1c], 3
mov ebx, 0x20
jmp 0x427ebb
push esi
push str.comment_tag
lea edx, [esp + 0x10c]
push str.Incorrect__s_at_offset__d
push edx
mov dword [esp + 0x28], 0x471c0c
mov dword [esp + 0x2c], 1
call fcn.0044d3e4
mov ecx, dword [esp + 0x30]
add esp, 0x10
lea eax, [esp + 0x104]
push eax
add ecx, 0x10
call fcn.0041bc40
or ebx, 0xffffffff
jmp 0x427ebb
test al, 8
je 0x4281af
xor eax, 8
cmp dword [esp + 0x14], 0x43
mov dword [esp + 0x10], eax
jne 0x42816e
mov dword [esp + 0x18], 0x471bb8
mov dword [esp + 0x1c], 3
mov ebx, 8
jmp 0x427ebb
push esi
push 0x471c1c
lea ecx, [esp + 0x44]
push str.Incorrect__s_at_offset__d
push ecx
mov dword [esp + 0x28], 0x471c0c
mov dword [esp + 0x2c], 1
call fcn.0044d3e4
mov ecx, dword [esp + 0x30]
add esp, 0x10
lea edx, [esp + 0x3c]
push edx
add ecx, 0x10
call fcn.0041bc40
or ebx, 0xffffffff
jmp 0x427ebb
test al, 0x20
je 0x427ebb
mov ecx, dword [esp + 0x14]
cmp ecx, 0x3c
jne 0x4281cc
or eax, 1
mov dword [esp + 0x10], eax
jmp 0x427ebb
cmp ecx, 0x3e
jne 0x427ebb
sub edi, dword [edx + 0xc]
lea ebx, [ecx + 2]
mov esi, edi
mov ecx, dword [esp + 0x24]
lea eax, [esi + 1]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x20]
sub eax, dword [ecx + 4]
mov dword [ecx], ebx
mov dword [ecx + 8], eax
mov eax, ebx
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0044b1f7
add esp, 0x1c0
ret
cmp dword [esp + 0x14], 0x3c
jne 0x428222
mov dword [esp + 0x10], 1
jmp 0x427ebb
movsx eax, byte [esp + 0x14]
push eax
push str.__t_n_r
mov ebx, 4
call fcn.0044da9a
add esp, 8
test eax, eax
je 0x427ea6
mov dword [esp + 0x10], 0x10
jmp 0x427ebb
test ebx, ebx
jne 0x42825a
mov eax, str.Element_end_tag
jmp 0x428283
cmp ebx, 8
jne 0x428266
mov eax, str.CDATA_Section
jmp 0x428283
cmp ebx, 0x10
jne 0x428272
mov eax, str.Processing_instruction
jmp 0x428283
cmp ebx, 0x20
jne 0x428283
mov eax, str.Comment
jmp 0x428283
mov eax, str.Doctype
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 4]
push ecx
push eax
lea edx, [esp + 0x44]
push str._s_at_offset__d_unterminated
push edx
or ebx, 0xffffffff
call fcn.0044d3e4
add esp, 0x10
lea eax, [esp + 0x3c]
push eax
lea ecx, [edi + 0x10]
call fcn.0041bc40
jmp 0x4281dd
push 0x80070057
call fcn.0041af40
sub edi, dword [edx + 0xc]
dec edi
jmp 0x4281db
sub edi, dword [edx + 0xc]
mov ebx, 4
dec edi
jmp 0x4281db