Function at 0x408f44
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x34c
mov eax, dword [0x4362fc]
xor eax, ebp
mov dword [ebp + 0x6c], eax
mov ecx, dword [ebp + 0x7c]
or dword [ebp - 0x2bc], 0xffffffff
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0x78]
mov eax, dword [edi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], esi
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
lea edx, [edx + eax*2]
mov dword [ebp - 0x2cc], eax
movzx eax, word [edx]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x2c0], esi
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2d4], esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2c4], edx
cmp ax, si
jne 0x408fc1
push 0xfffffffffffffffe
mov dword [ecx + 8], esi
mov dword [ecx], esi
pop eax
jmp 0x409631
push ebx
movzx ebx, ax
test ebx, ebx
je 0x4092cb
test esi, esi
je 0x40902a
push ebx
push str.__t_n_r__
call fcn.0041b0f7
pop ecx
pop ecx
test eax, eax
je 0x4092b1
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x2c4]
sub eax, ecx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x2bc], 0
jne 0x409009
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x40901c
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x2d0]
push eax
add ecx, 0x10
call fcn.00405c2c
xor esi, esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d4], esi
mov edx, dword [ebp - 0x2c0]
test edx, edx
je 0x409258
cmp ebx, 0x3e
jne 0x409108
test byte [ebp - 0x2b8], 0xc0
jne 0x409127
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x2c8]
sar eax, 1
mov dword [ebp - 0x2cc], eax
cmp ecx, 1
jne 0x4090b0
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2bc], ecx
jne 0x4090f6
cmp dword [ebp - 0x2d4], 0x2f
jne 0x4090f6
cmp dword [ebp - 0x2d8], 0
je 0x4090a1
push dword [ebp - 0x2d8]
push 0x42dabc
call fcn.0041b0f7
pop ecx
pop ecx
test eax, eax
je 0x4090f6
mov eax, dword [ebp - 0x2d0]
or dword [eax + 0xc], 0x10000
jmp 0x4090f6
cmp eax, ecx
jle 0x4090e9
mov ebx, dword [ebp - 0x2c4]
lea eax, [ecx + ecx]
sub ebx, eax
lea eax, [ebx + 2]
mov dword [ebp - 0x2dc], ecx
sub edx, eax
dec dword [ebp - 0x2dc]
je 0x4090e2
mov cx, word [eax]
mov bx, word [edx + eax]
inc eax
inc eax
cmp cx, bx
je 0x4090ca
jmp 0x4090e9
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2c0], 0
jne 0x4092b1
test byte [ebp - 0x2b8], 0x20
je 0x409612
jmp 0x4092b1
cmp ebx, 0x3c
jne 0x409127
cmp dword [ebp - 0x2bc], 2
je 0x4096eb
cmp dword [ebp - 0x2bc], 0xffffffff
je 0x4096eb
test byte [ebp - 0x2bc], 1
je 0x40921a
test byte [ebp - 0x2b8], 0xc0
je 0x409180
cmp ebx, 0x22
jne 0x40915e
test byte [ebp - 0x2b8], 0x80
je 0x409203
xor dword [ebp - 0x2b8], 0x80
jmp 0x409203
cmp ebx, 0x27
jne 0x409203
test byte [ebp - 0x2b8], 0x40
je 0x409203
xor dword [ebp - 0x2b8], 0x40
jmp 0x409203
cmp ebx, 0x22
jne 0x40919d
test dword [ebp - 0x2b8], 0x100
je 0x409203
xor dword [ebp - 0x2b8], 0x180
jmp 0x409203
cmp ebx, 0x27
jne 0x4091ba
test dword [ebp - 0x2b8], 0x100
je 0x409203
xor dword [ebp - 0x2b8], 0x140
jmp 0x409203
cmp ebx, 0x3d
jne 0x4091dc
cmp dword [ebp - 0x2d4], ebx
je 0x4091dc
mov eax, 0x100
test dword [ebp - 0x2b8], eax
jne 0x4091dc
xor dword [ebp - 0x2b8], eax
jmp 0x409203
test dword [ebp - 0x2b8], 0x100
je 0x409203
push ebx
push str.__t_n_r
call fcn.0041b0f7
pop ecx
pop ecx
test eax, eax
jne 0x409203
xor dword [ebp - 0x2b8], 0x100
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ebx
jmp 0x4092b1
test byte [ebp - 0x2bc], 0x40
je 0x4092b1
cmp ebx, 0x22
jne 0x409241
test byte [ebp - 0x2b8], 0x40
jne 0x4092b1
xor dword [ebp - 0x2b8], 0x80
jmp 0x4092b1
cmp ebx, 0x27
jne 0x4092b1
test byte [ebp - 0x2b8], 0x80
jne 0x4092b1
xor dword [ebp - 0x2b8], 0x40
jmp 0x4092b1
cmp dword [ebp - 0x2b8], 0
je 0x409642
test byte [ebp - 0x2b8], 0x10
je 0x409325
cmp ebx, 0x3c
je 0x4096fc
push ebx
push str.__t_n_r
call fcn.0041b0f7
pop ecx
pop ecx
test eax, eax
jne 0x4092b1
xor dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2bc], 2
mov dword [ebp - 0x2c8], 1
mov dword [ebp - 0x2c0], 0x42dab8
add dword [ebp - 0x2c4], 2
mov eax, dword [ebp - 0x2c4]
movzx ebx, word [eax]
test ebx, ebx
jne 0x408fcd
mov edx, eax
sub edx, dword [edi + 0xc]
sar edx, 1
dec edx
cmp dword [ebp - 0x2bc], 4
mov dword [ebp - 0x2cc], edx
je 0x409612
cmp dword [ebp - 0x2bc], 2
je 0x409612
test byte [ebp - 0x2b8], 0x20
mov ecx, 0x42dab0
jne 0x4096b3
mov eax, dword [ebp - 0x2bc]
cmp eax, 0x40
je 0x4096b3
cmp eax, 1
jne 0x409684
mov ecx, 0x42da98
jmp 0x4096b8
test byte [ebp - 0x2b8], 1
je 0x409428
xor eax, eax
inc eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x60
ja 0x409402
cmp ebx, 0x40
jbe 0x409352
cmp ebx, 0x5b
jb 0x409402
cmp ebx, 0x5f
je 0x409402
cmp ebx, 0x3a
je 0x409402
cmp ebx, 0x2f
jne 0x409382
and dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], eax
jmp 0x4093b6
cmp ebx, 0x21
jne 0x409393
or dword [ebp - 0x2b8], 2
jmp 0x4092b1
cmp ebx, 0x3f
jne 0x4093c7
mov dword [ebp - 0x2c0], 0x42da8c
mov dword [ebp - 0x2c8], 2
mov dword [ebp - 0x2bc], 0x10
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x4092b1
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2b4]
push str.tag_name_character
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.0041b75f
lea eax, [ebp - 0x2b4]
jmp 0x4095b2
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2bc], eax
sar esi, 1
jmp 0x4092b1
test byte [ebp - 0x2b8], 2
je 0x4094dc
xor dword [ebp - 0x2b8], 2
cmp ebx, 0x2d
jne 0x40944d
or dword [ebp - 0x2b8], 4
jmp 0x4092b1
cmp ebx, 0x5b
jne 0x409467
test byte [ebp - 0x2b8], 0x20
jne 0x409481
or dword [ebp - 0x2b8], 8
jmp 0x4092b1
cmp ebx, 0x44
jne 0x409481
test byte [ebp - 0x2b8], 0x20
jne 0x409481
or dword [ebp - 0x2b8], 0x20
jmp 0x4092b1
push ebx
push 0x42da28
call fcn.0041b0f7
pop ecx
pop ecx
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
test eax, eax
je 0x4094b5
mov dword [ebp - 0x2bc], 0x40
jmp 0x4092b1
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x1ec]
push str.__tag
push str.Incorrect__s_at_offset__d
push eax
call fcn.0041b75f
lea eax, [ebp - 0x1ec]
jmp 0x4095b2
test byte [ebp - 0x2b8], 4
je 0x40954c
xor dword [ebp - 0x2b8], 4
cmp ebx, 0x2d
jne 0x409514
mov dword [ebp - 0x2c0], 0x42da14
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], 0x20
jmp 0x4092b1
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x124]
push str.comment_tag
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.0041b75f
lea eax, [ebp - 0x124]
jmp 0x4095b2
test byte [ebp - 0x2b8], 8
je 0x4095d0
push 8
pop eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x43
jne 0x409582
mov dword [ebp - 0x2c0], 0x42d9f4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], eax
jmp 0x4092b1
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x5c]
push 0x42dab0
push str.Incorrect__s_at_offset__d
push eax
mov dword [ebp - 0x2c0], 0x42da94
mov dword [ebp - 0x2c8], 1
call fcn.0041b75f
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x2d0]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.00405e40
or dword [ebp - 0x2bc], 0xffffffff
jmp 0x4092b1
test byte [ebp - 0x2b8], 0x20
je 0x4092b1
cmp ebx, 0x3c
jne 0x4095ee
or dword [ebp - 0x2b8], 1
jmp 0x4092b1
cmp ebx, 0x3e
jne 0x4092b1
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 0x40
sar eax, 1
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2d0]
inc eax
mov dword [edi + 8], eax
sub eax, dword [ecx + 4]
pop ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x6c]
pop edi
xor ecx, ebp
pop esi
call fcn.00419dc7
add ebp, 0x70
leave
ret
cmp ebx, 0x3c
jne 0x409656
mov dword [ebp - 0x2b8], 1
jmp 0x4092b1
push ebx
push str.__t_n_r
mov dword [ebp - 0x2bc], 4
call fcn.0041b0f7
pop ecx
pop ecx
test eax, eax
je 0x409293
mov dword [ebp - 0x2b8], 0x10
jmp 0x4092b1
test eax, eax
jne 0x40968f
mov ecx, str.Element_end_tag
jmp 0x4096b8
cmp eax, 8
jne 0x40969b
mov ecx, str.CDATA_Section
jmp 0x4096b8
cmp eax, 0x10
jne 0x4096a7
mov ecx, str.Processing_instruction
jmp 0x4096b8
cmp eax, 0x20
jne 0x4096b8
mov ecx, str.Comment
jmp 0x4096b8
mov ecx, str.Doctype
mov esi, dword [ebp - 0x2d0]
push dword [esi + 4]
or dword [ebp - 0x2bc], 0xffffffff
push ecx
lea eax, [ebp - 0x5c]
push str._s_at_offset__d_unterminated
push eax
call fcn.0041b75f
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea ecx, [esi + 0x10]
call fcn.00405e40
jmp 0x409612
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
sar eax, 1
dec eax
jmp 0x40960c
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 4
sar eax, 1
dec eax
jmp 0x40960c