Function at 0x40de90
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
push ebx
push ebp
xor edx, edx
push esi
mov esi, ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc]
push edi
xor ebp, ebp
xor edi, edi
add eax, dword [esi + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
movsx ebx, byte [eax]
cmp ebx, edx
jne 0x40df6e
sub eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
cmp ecx, edx
mov dword [esi + 8], eax
je 0x40e531
mov edx, dword [ecx + 0xdc]
mov dword [esp + 0x2c], edx
call fcn.0040dd30
test al, al
je 0x40e531
mov ebx, dword [esp + 0x34]
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 8]
mov eax, dword [eax + 0xdc]
sub edx, ecx
sub eax, dword [esp + 0x2c]
je 0x40df41
sub ecx, eax
cmp dword [esp + 0x1c], 0
mov dword [ebx + 4], ecx
je 0x40df32
sub dword [esp + 0x1c], eax
jmp 0x40df3e
cmp dword [esp + 0x28], 0
je 0x40df3e
sub dword [esi], eax
sub dword [esi + 4], eax
sub dword [esi + 8], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x60]
add eax, edx
cmp dword [ecx + 0x18], 0x10
jb 0x40df57
mov ecx, dword [ecx + 4]
jmp 0x40df5a
add ecx, 4
add eax, ecx
mov dword [esi + 0xc], ecx
movsx ebx, byte [eax]
test ebx, ebx
mov dword [esp + 0x18], eax
je 0x40e531
cmp dword [esp + 0x1c], 0
je 0x40dfb6
movsx edx, bl
push edx
push str.__t_n_r__
call fcn.00412be0
add esp, 8
test eax, eax
je 0x40e21a
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x28], eax
lea eax, [eax + ecx - 1]
mov dword [esi + 4], eax
xor eax, eax
mov dword [esi], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
test ebp, ebp
je 0x40e1d5
cmp ebx, 0x3e
jne 0x40e06b
mov ecx, dword [esp + 0x10]
test cl, 0xc0
jne 0x40e08a
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
add eax, 1
cmp edi, 1
mov dword [esi + 8], eax
jne 0x40e023
xor ebp, ebp
cmp dword [esp + 0x14], edi
jne 0x40e05d
cmp dword [esp + 0x20], 0x2f
jne 0x40e05d
cmp dword [esp + 0x24], ebp
je 0x40e016
movsx ecx, byte [esp + 0x24]
push ecx
push str.__t_n_r_
call fcn.00412be0
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x40e05d
mov eax, dword [esp + 0x34]
or dword [eax + 0xc], 0x10000
jmp 0x40e05d
add eax, 0xffffffff
cmp eax, edi
jle 0x40e21a
mov eax, dword [esp + 0x18]
sub eax, edi
add eax, 1
mov ecx, ebp
mov dword [esp + 0x2c], edi
sub ecx, eax
sub dword [esp + 0x2c], 1
je 0x40e057
mov dl, byte [eax]
mov bl, byte [eax + ecx]
add eax, 1
cmp dl, bl
je 0x40e03f
jmp 0x40e21a
mov ecx, dword [esp + 0x10]
xor ebp, ebp
test cl, 0x20
je 0x40e4d4
jmp 0x40e21a
cmp ebx, 0x3c
mov eax, dword [esp + 0x14]
jne 0x40e090
cmp eax, 2
je 0x40e07e
cmp eax, 0xffffffff
jne 0x40e090
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
jmp 0x40e4d1
mov eax, dword [esp + 0x14]
jmp 0x40e094
mov ecx, dword [esp + 0x10]
test al, 1
je 0x40e1a8
test cl, 0xc0
je 0x40e0f3
cmp ebx, 0x22
jne 0x40e0c9
test cl, cl
jns 0x40e19a
xor ecx, 0x80
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
cmp ebx, 0x27
jne 0x40e19a
test cl, 0x40
je 0x40e19a
xor ecx, 0x40
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
cmp ebx, 0x22
jne 0x40e11f
test ecx, 0x100
je 0x40e19a
xor ecx, 0x180
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
cmp ebx, 0x27
jne 0x40e147
test ecx, 0x100
je 0x40e19a
xor ecx, 0x140
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
cmp ebx, 0x3d
jne 0x40e175
cmp dword [esp + 0x20], ebx
je 0x40e175
test ecx, 0x100
jne 0x40e17d
xor ecx, 0x100
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
test ecx, 0x100
je 0x40e19a
movsx eax, bl
push eax
push str.__t_n_r
call fcn.00412be0
add esp, 8
test eax, eax
jne 0x40e19a
xor dword [esp + 0x10], 0x100
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jmp 0x40e21a
test al, 0x40
je 0x40e21a
cmp ebx, 0x22
jne 0x40e1c2
test byte [esp + 0x10], 0x40
jne 0x40e21a
xor dword [esp + 0x10], 0x80
jmp 0x40e21a
cmp ebx, 0x27
jne 0x40e21a
test byte [esp + 0x10], 0x80
jne 0x40e21a
xor dword [esp + 0x10], 0x40
jmp 0x40e21a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40e4f1
test al, 0x10
je 0x40e236
cmp ebx, 0x3c
je 0x40e5f4
movsx edx, bl
push edx
push str.__t_n_r
call fcn.00412be0
add esp, 8
test eax, eax
jne 0x40e21a
xor dword [esp + 0x10], 0x10
mov dword [esp + 0x14], 2
mov ebp, 0x425eac
mov edi, 1
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00412ba5
add ebx, eax
add esp, 4
mov dword [esp + 0x18], ebx
mov eax, ebx
xor edx, edx
jmp 0x40ded2
test al, 1
je 0x40e2fd
xor eax, 1
cmp ebx, 0x60
mov dword [esp + 0x10], eax
ja 0x40e2df
cmp ebx, 0x40
jbe 0x40e25c
cmp ebx, 0x5b
jb 0x40e2df
cmp ebx, 0x5f
je 0x40e2df
cmp ebx, 0x3a
je 0x40e2df
cmp ebx, 0x2f
jne 0x40e288
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov ebp, 0x425ea0
add eax, 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
jmp 0x40e215
cmp ebx, 0x21
jne 0x40e296
or eax, 2
mov dword [esp + 0x10], eax
jmp 0x40e21a
cmp ebx, 0x3f
jne 0x40e2c0
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov ebp, 0x425ebc
add eax, 1
mov edi, 2
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x1c], eax
jmp 0x40e21a
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.first_tag_syntax
jmp 0x40e478
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov edi, 1
mov ebp, 0x425ea0
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
jmp 0x40e21a
test al, 2
je 0x40e3cf
xor eax, 2
cmp ebx, 0x2d
mov dword [esp + 0x10], eax
jne 0x40e31d
or eax, 4
mov dword [esp + 0x10], eax
jmp 0x40e21a
test al, 0x20
je 0x40e36c
movsx edx, bl
push edx
push 0x42607c
call fcn.00412be0
add esp, 8
test eax, eax
mov ebp, 0x425ea0
mov edi, 1
je 0x40e34d
mov dword [esp + 0x14], 0x40
jmp 0x40e21a
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.doctype_tag_syntax
jmp 0x40e482
cmp ebx, 0x5b
jne 0x40e37d
or eax, 8
mov dword [esp + 0x10], eax
jmp 0x40e21a
cmp ebx, 0x44
jne 0x40e38e
or eax, 0x20
mov dword [esp + 0x10], eax
jmp 0x40e21a
mov edx, dword [esi + 8]
push 0xffffffffffffffff
push edx
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.exclamation_tag_syntax
mov eax, dword [esp + 0x48]
add eax, 0x10
push eax
mov ebp, 0x425ea0
mov edi, 1
call fcn.0040d0c0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x40e21a
test al, 4
je 0x40e437
xor eax, 4
cmp ebx, 0x2d
mov dword [esp + 0x10], eax
jne 0x40e3f6
mov ebp, 0x425eb0
mov edi, 3
mov dword [esp + 0x14], 0x20
jmp 0x40e21a
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x34]
push 0xffffffffffffffff
push ecx
push 0
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
add edx, 0x10
push edx
mov ebp, 0x425ea0
mov edi, 1
mov dword [eax], str.comment_tag_syntax
call fcn.0040d0c0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x40e21a
test al, 8
je 0x40e49f
xor eax, 8
cmp ebx, 0x43
mov dword [esp + 0x10], eax
jne 0x40e45e
mov ebp, 0x425e9c
mov edi, 3
mov dword [esp + 0x14], 8
jmp 0x40e21a
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
push 0
push ecx
mov eax, esp
mov dword [eax], 0
push ecx
mov eax, esp
mov dword [eax], str.cdata_section_syntax
mov edi, 1
mov ebp, 0x425ea0
mov ecx, dword [esp + 0x48]
add ecx, 0x10
push ecx
call fcn.0040d0c0
add esp, 0x18
mov dword [esp + 0x14], 0xffffffff
jmp 0x40e21a
test al, 0x20
je 0x40e21a
cmp ebx, 0x3c
jne 0x40e4b6
or dword [esp + 0x10], 1
jmp 0x40e21a
cmp ebx, 0x3e
jne 0x40e21a
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov dword [esp + 0x14], 0x40
add eax, 1
mov dword [esi + 8], eax
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x34]
sub edx, dword [ecx + 4]
mov eax, dword [esp + 0x14]
mov dword [ecx + 8], edx
mov dword [ecx], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4
cmp ebx, 0x3c
jne 0x40e503
mov dword [esp + 0x10], 1
jmp 0x40e21a
movsx edx, bl
push edx
push str.__t_n_r
mov dword [esp + 0x1c], 4
call fcn.00412be0
add esp, 8
test eax, eax
je 0x40e208
mov dword [esp + 0x10], 0x10
jmp 0x40e21a
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
cmp dword [esi + 8], edx
jne 0x40e559
pop edi
pop esi
pop ebp
mov dword [eax + 8], 0
mov dword [eax], 0
mov eax, 0xfffffffe
pop ebx
add esp, 0x20
ret 4
cmp dword [esp + 0x14], 4
je 0x40e4d4
cmp dword [esp + 0x14], 2
je 0x40e4d4
test byte [esp + 0x10], 0x20
mov ecx, 0x426020
jne 0x40e5bf
mov eax, dword [esp + 0x14]
cmp eax, 0x40
je 0x40e5bf
cmp eax, 1
jne 0x40e590
mov ecx, str.start_tag
jmp 0x40e5c4
test eax, eax
jne 0x40e59b
mov ecx, str.end_tag
jmp 0x40e5c4
cmp eax, 8
jne 0x40e5a7
mov ecx, str.cdata_section
jmp 0x40e5c4
cmp eax, 0x10
jne 0x40e5b3
mov ecx, str.processing_instruction
jmp 0x40e5c4
cmp eax, 0x20
jne 0x40e5c4
mov ecx, str.comment
jmp 0x40e5c4
mov ecx, str.document_type
push 0xffffffffffffffff
push edx
push 2
push ecx
mov eax, esp
mov dword [eax], ecx
push ecx
mov eax, esp
mov dword [eax], str.unterminated_tag_syntax
mov eax, dword [esp + 0x48]
add eax, 0x10
push eax
mov dword [esp + 0x2c], 0xffffffff
call fcn.0040d0c0
add esp, 0x18
jmp 0x40e4d4
mov eax, dword [esp + 0x18]
sub eax, dword [esi + 0xc]
mov dword [esp + 0x14], 4
jmp 0x40e4d1