Function at 0x4035e1
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
push ebx
push ebp
push esi
or dword [esp + 0x10], 0xffffffff
mov esi, ecx
xor edx, edx
push edi
mov ecx, dword [esi + 8]
mov dword [eax + 0xc], edx
mov dword [eax + 4], ecx
mov edi, dword [esi + 0xc]
xor ebp, ebp
add edi, dword [esi + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
movsx ebx, byte [edi]
cmp ebx, edx
jne 0x4036a1
sub edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
cmp ecx, edx
mov dword [esi + 8], edi
je 0x403bd6
mov ebx, dword [ecx + 0xa4]
call fcn.0040333b
test al, al
je 0x403bd6
mov edi, dword [esp + 0x34]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 8]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0xa4]
sub edx, ecx
sub eax, ebx
je 0x40367e
sub ecx, eax
test ebp, ebp
mov dword [edi + 4], ecx
je 0x40366f
sub ebp, eax
jmp 0x40367b
cmp dword [esp + 0x28], 0
je 0x40367b
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + 0x28]
mov eax, dword [eax + 4]
add eax, edx
mov ecx, dword [ecx]
mov dword [esi + 0xc], ecx
movsx ebx, byte [ecx + eax]
lea edi, [ecx + eax]
test ebx, ebx
je 0x403bd6
test ebp, ebp
je 0x4036e0
movsx eax, bl
push eax
push str.__t_n_r__
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x40378f
mov eax, edi
xor edx, edx
sub eax, dword [esi + 0xc]
mov dword [esi], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], edx
sub eax, ebp
mov dword [esp + 0x28], eax
lea eax, [eax + ebp - 1]
xor ebp, ebp
mov dword [esi + 4], eax
jmp 0x4036e2
xor edx, edx
cmp dword [esp + 0x18], edx
je 0x4038bd
cmp ebx, 0x3e
jne 0x4037a0
test byte [esp + 0x10], 0xc0
jne 0x4037bb
mov ecx, dword [esp + 0x1c]
mov eax, edi
sub eax, dword [esi + 0xc]
inc eax
cmp ecx, 1
mov dword [esi + 8], eax
jne 0x40374a
cmp dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
jne 0x403784
cmp dword [esp + 0x20], 0x2f
jne 0x403784
cmp dword [esp + 0x24], edx
je 0x403740
movsx eax, byte [esp + 0x24]
push eax
push str.__t_n_r_
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x403784
mov eax, dword [esp + 0x34]
or byte [eax + 0xe], 1
jmp 0x403784
dec eax
cmp eax, ecx
jle 0x40377e
mov eax, edi
sub eax, ecx
inc eax
dec ecx
cmp ecx, edx
je 0x40377a
mov edx, dword [esp + 0x18]
sub edx, eax
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x2c]
mov dl, byte [eax]
mov bl, byte [ebx + eax]
inc eax
cmp dl, bl
jne 0x403774
dec ecx
jne 0x403763
xor edx, edx
cmp ecx, edx
jne 0x40377e
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], edx
jne 0x40378f
test byte [esp + 0x10], 0x20
je 0x403cb5
push edi
call dword [sym.imp.MSVCRT.dll__mbclen]
add edi, eax
pop ecx
xor edx, edx
jmp 0x40361e
cmp ebx, 0x3c
jne 0x4037bb
cmp dword [esp + 0x14], 2
je 0x403c8e
cmp dword [esp + 0x14], 0xffffffff
je 0x403c8e
test byte [esp + 0x14], 1
je 0x403877
test byte [esp + 0x10], 0xc0
je 0x4037fa
cmp ebx, 0x22
jne 0x4037e7
test byte [esp + 0x10], 0x80
je 0x403866
xor dword [esp + 0x10], 0x80
jmp 0x403866
cmp ebx, 0x27
jne 0x403866
test byte [esp + 0x10], 0x40
je 0x403866
xor dword [esp + 0x10], 0x40
jmp 0x403866
cmp ebx, 0x22
jne 0x403810
test byte [esp + 0x11], 1
je 0x403866
xor dword [esp + 0x10], 0x180
jmp 0x403866
cmp ebx, 0x27
jne 0x403826
test byte [esp + 0x11], 1
je 0x403866
xor dword [esp + 0x10], 0x140
jmp 0x403866
cmp ebx, 0x3d
jne 0x403842
cmp dword [esp + 0x20], ebx
je 0x403842
mov eax, 0x100
test dword [esp + 0x10], eax
jne 0x403842
xor dword [esp + 0x10], eax
jmp 0x403866
test byte [esp + 0x11], 1
je 0x403866
movsx eax, bl
push eax
push str.__t_n_r
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
jne 0x403866
xor dword [esp + 0x10], 0x100
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], eax
jmp 0x40378f
test byte [esp + 0x14], 0x40
je 0x40378f
cmp ebx, 0x22
jne 0x40389f
test byte [esp + 0x10], 0x40
jne 0x40378f
xor dword [esp + 0x10], 0x80
jmp 0x40378f
cmp ebx, 0x27
jne 0x40378f
test byte [esp + 0x10], 0x80
jne 0x40378f
xor dword [esp + 0x10], 0x40
jmp 0x40378f
cmp dword [esp + 0x10], edx
je 0x403b96
test byte [esp + 0x10], 0x10
je 0x403912
cmp ebx, 0x3c
je 0x403c96
movsx eax, bl
push eax
push str.__t_n_r
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
jne 0x40378f
xor dword [esp + 0x10], 0x10
mov dword [esp + 0x18], 0x42f9e8
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], 2
jmp 0x40378f
test byte [esp + 0x10], 1
je 0x4039df
push 1
pop eax
xor dword [esp + 0x10], eax
cmp ebx, 0x60
ja 0x4039c5
cmp ebx, 0x40
jbe 0x40393b
cmp ebx, 0x5b
jb 0x4039c5
cmp ebx, 0x5f
je 0x4039c5
cmp ebx, 0x3a
je 0x4039c5
cmp ebx, 0x2f
jne 0x403969
mov dword [esp + 0x18], 0x42f9e4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov ebp, edi
sub ebp, dword [esi + 0xc]
inc ebp
jmp 0x40378f
cmp ebx, 0x21
jne 0x403978
or dword [esp + 0x10], 2
jmp 0x40378f
cmp ebx, 0x3f
jne 0x403997
mov dword [esp + 0x18], 0x42f9e0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x14], 0x10
jmp 0x40395e
push 0xffffffffffffffff
mov dword [esp + 0x1c], 0x42f9e4
push dword [esi + 8]
mov dword [esp + 0x24], 1
push 0
push ecx
mov ecx, esp
push 0
call fcn.0040121a
push ecx
mov ecx, esp
push str.first_tag_syntax
jmp 0x403b4f
mov ebp, edi
mov dword [esp + 0x18], 0x42f9e4
sub ebp, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jmp 0x40378f
test byte [esp + 0x10], 2
je 0x403aa1
xor dword [esp + 0x10], 2
cmp ebx, 0x2d
jne 0x4039fe
or dword [esp + 0x10], 4
jmp 0x40378f
test byte [esp + 0x10], 0x20
je 0x403a55
movsx eax, bl
push eax
push 0x42f9c8
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
mov dword [esp + 0x1c], 0x42f9e4
test eax, eax
pop ecx
mov dword [esp + 0x1c], 1
je 0x403a37
mov dword [esp + 0x14], 0x40
jmp 0x40378f
push 0xffffffffffffffff
push dword [esi + 8]
push 0
push ecx
mov ecx, esp
push 0
call fcn.0040121a
push ecx
mov ecx, esp
push str.doctype_tag_syntax
jmp 0x403b4f
cmp ebx, 0x5b
jne 0x403a64
or dword [esp + 0x10], 8
jmp 0x40378f
cmp ebx, 0x44
jne 0x403a73
or dword [esp + 0x10], 0x20
jmp 0x40378f
push 0xffffffffffffffff
mov dword [esp + 0x1c], 0x42f9e4
push dword [esi + 8]
mov dword [esp + 0x24], 1
push 0
push ecx
mov ecx, esp
push 0
call fcn.0040121a
push ecx
mov ecx, esp
push str.exclamation_tag_syntax
jmp 0x403b4f
test byte [esp + 0x10], 4
je 0x403afa
xor dword [esp + 0x10], 4
cmp ebx, 0x2d
jne 0x403acf
mov dword [esp + 0x18], 0x42f998
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], 0x20
jmp 0x40378f
push 0xffffffffffffffff
mov dword [esp + 0x1c], 0x42f9e4
push dword [esi + 8]
mov dword [esp + 0x24], 1
push 0
push ecx
mov ecx, esp
push 0
call fcn.0040121a
push ecx
mov ecx, esp
push str.comment_tag_syntax
jmp 0x403b4f
test byte [esp + 0x10], 8
je 0x403b6e
push 8
pop eax
xor dword [esp + 0x10], eax
cmp ebx, 0x43
jne 0x403b26
mov dword [esp + 0x18], 0x42f980
mov dword [esp + 0x1c], 3
mov dword [esp + 0x14], eax
jmp 0x40378f
push 0xffffffffffffffff
mov dword [esp + 0x1c], 0x42f9e4
push dword [esi + 8]
mov dword [esp + 0x24], 1
push 0
push ecx
mov ecx, esp
push 0
call fcn.0040121a
push ecx
mov ecx, esp
push str.cdata_section_syntax
call fcn.0040121a
mov eax, dword [esp + 0x48]
add eax, 0x10
push eax
call fcn.004010ad
add esp, 0x18
or dword [esp + 0x14], 0xffffffff
jmp 0x40378f
test byte [esp + 0x10], 0x20
je 0x40378f
cmp ebx, 0x3c
jne 0x403b88
or dword [esp + 0x10], 1
jmp 0x40378f
cmp ebx, 0x3e
je 0x403ca6
jmp 0x40378f
cmp ebx, 0x3c
jne 0x403ba8
mov dword [esp + 0x10], 1
jmp 0x40378f
movsx eax, bl
push eax
push str.__t_n_r
mov dword [esp + 0x1c], 4
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
test eax, eax
pop ecx
je 0x4038f5
mov dword [esp + 0x10], 0x10
jmp 0x40378f
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
cmp dword [esi + 8], edx
jne 0x403bf1
and dword [eax + 8], 0
and dword [eax], 0
push 0xfffffffffffffffe
pop eax
jmp 0x403cc8
cmp dword [esp + 0x14], 4
je 0x403cb5
cmp dword [esp + 0x14], 2
je 0x403cb5
test byte [esp + 0x10], 0x20
mov eax, 0x42f964
jne 0x403c57
mov ecx, dword [esp + 0x14]
cmp ecx, 0x40
je 0x403c57
cmp ecx, 1
jne 0x403c28
mov eax, str.start_tag
jmp 0x403c5c
test ecx, ecx
jne 0x403c33
mov eax, str.end_tag
jmp 0x403c5c
cmp ecx, 8
jne 0x403c3f
mov eax, str.cdata_section
jmp 0x403c5c
cmp ecx, 0x10
jne 0x403c4b
mov eax, str.processing_instruction
jmp 0x403c5c
cmp ecx, 0x20
jne 0x403c5c
mov eax, str.comment
jmp 0x403c5c
mov eax, str.document_type
or dword [esp + 0x14], 0xffffffff
push 0xffffffffffffffff
push edx
push 2
push ecx
mov ecx, esp
push eax
call fcn.0040121a
push ecx
mov ecx, esp
push str.unterminated_tag_syntax
call fcn.0040121a
mov eax, dword [esp + 0x48]
add eax, 0x10
push eax
call fcn.004010ad
add esp, 0x18
jmp 0x403cb5
sub edi, dword [esi + 0xc]
mov dword [esi + 8], edi
jmp 0x403cb5
sub edi, dword [esi + 0xc]
mov dword [esp + 0x14], 4
mov dword [esi + 8], edi
jmp 0x403cb5
sub edi, dword [esi + 0xc]
mov dword [esp + 0x14], 0x40
inc edi
mov dword [esi + 8], edi
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 8]
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4