Function at 0x41ce30
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x1b4
mov ecx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x1bc]
push ebx
push ebp
mov edx, dword [ecx + 8]
push esi
xor esi, esi
mov dword [eax + 4], edx
mov dword [eax + 0xc], esi
mov edx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x24], edx
add ebp, edx
push edi
xor edi, edi
or ebx, 0xffffffff
mov dl, byte [ebp]
mov dword [esp + 0x10], esi
test dl, dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], ebp
jne 0x41ce9c
mov dword [eax + 8], edi
mov dword [eax], edi
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x1b4
ret
movsx eax, byte [ebp]
test eax, eax
mov dword [esp + 0x14], eax
je 0x41d502
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41cf52
movsx eax, byte [esp + 0x14]
push eax
push str.__t_n_r__
call fcn.0042e647
add esp, 8
test eax, eax
je 0x41d1cb
mov edx, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
sub ebp, eax
sub ebp, ecx
test ebx, ebx
jne 0x41cef8
mov dword [edx], ecx
lea ecx, [ecx + ebp - 1]
mov dword [edx + 4], ecx
jmp 0x41cf39
mov edx, dword [esp + 0x1cc]
push ebp
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x24]
lea esi, [eax + edx]
call fcn.00445c44
mov ecx, ebp
mov edi, eax
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1d0]
add ecx, 0x10
call fcn.00445c93
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c8]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
test edi, edi
je 0x41d179
mov eax, dword [esp + 0x14]
cmp eax, 0x3e
jne 0x41d022
mov edx, dword [esp + 0x10]
test dl, 0xc0
jne 0x41d03d
mov eax, dword [ecx + 0xc]
sub ebp, eax
cmp esi, 1
mov dword [esp + 0x28], ebp
jne 0x41cfc8
xor edi, edi
cmp ebx, esi
mov dword [esp + 0x18], edi
jne 0x41d014
cmp dword [esp + 0x2c], 0x2f
jne 0x41d014
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41cfb8
movsx edx, al
push edx
push 0x480e54
call fcn.0042e647
mov edx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x41d014
mov eax, dword [esp + 0x1cc]
or dword [eax + 0xc], 0x10000
jmp 0x41d014
cmp ebp, esi
jle 0x41d1c7
mov eax, dword [esp + 0x24]
sub eax, esi
lea ebp, [eax + 1]
lea eax, [esi - 1]
test eax, eax
je 0x41d00a
mov ecx, edi
sub ecx, ebp
mov dword [esp + 0x14], ecx
jmp 0x41cfee
mov ecx, dword [esp + 0x14]
mov dl, byte [ebp]
mov cl, byte [ecx + ebp]
inc ebp
cmp dl, cl
jne 0x41cffe
dec eax
jne 0x41cfea
jmp 0x41d006
test eax, eax
jne 0x41d1c7
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x18], edi
test dl, 0x20
je 0x41d5b8
jmp 0x41d1c7
cmp eax, 0x3c
jne 0x41d039
cmp ebx, 2
je 0x41d59b
cmp ebx, 0xffffffff
je 0x41d59b
mov edx, dword [esp + 0x10]
test bl, 1
je 0x41d14b
test dl, 0xc0
je 0x41d09e
cmp eax, 0x22
jne 0x41d074
test dl, 0x80
je 0x41d13d
mov ecx, dword [esp + 0x2c]
xor edx, 0x80
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
jmp 0x41d1c7
cmp eax, 0x27
jne 0x41d13d
test dl, 0x40
je 0x41d13d
mov ecx, dword [esp + 0x2c]
xor edx, 0x40
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
jmp 0x41d1c7
cmp eax, 0x22
jne 0x41d0c7
test dh, 1
je 0x41d13d
mov ecx, dword [esp + 0x2c]
xor edx, 0x180
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
jmp 0x41d1c7
cmp eax, 0x27
jne 0x41d0ec
test dh, 1
je 0x41d13d
mov ecx, dword [esp + 0x2c]
xor edx, 0x140
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
jmp 0x41d1c7
cmp eax, 0x3d
jne 0x41d115
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x41d115
test dh, 1
jne 0x41d11a
xor edx, 0x100
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], eax
jmp 0x41d1c7
test dh, 1
je 0x41d13d
movsx edx, byte [esp + 0x14]
push edx
push str.__t_n_r
call fcn.0042e647
add esp, 8
test eax, eax
jne 0x41d139
xor dword [esp + 0x10], 0x100
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
jmp 0x41d1c7
test bl, 0x40
je 0x41d1c7
cmp eax, 0x22
jne 0x41d166
test dl, 0x40
jne 0x41d1c7
xor edx, 0x80
mov dword [esp + 0x10], edx
jmp 0x41d1c7
cmp eax, 0x27
jne 0x41d1c7
test dl, 0x80
jne 0x41d1c7
xor edx, 0x40
mov dword [esp + 0x10], edx
jmp 0x41d1c7
mov eax, dword [esp + 0x10]
test eax, eax
je 0x41d4c1
test al, 0x10
je 0x41d1e6
mov eax, dword [esp + 0x14]
cmp eax, 0x3c
je 0x41d5a1
movsx edx, al
push edx
push str.__t_n_r
call fcn.0042e647
add esp, 8
test eax, eax
jne 0x41d1c7
xor dword [esp + 0x10], 0x10
mov edi, 0x480e50
mov esi, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ebx, 2
mov ebp, dword [esp + 0x24]
push ebp
call fcn.0042e30e
mov ecx, dword [esp + 0x1cc]
add esp, 4
add ebp, eax
mov dword [esp + 0x24], ebp
jmp 0x41ce9c
test al, 1
je 0x41d2e1
mov edx, dword [esp + 0x14]
xor eax, 1
cmp edx, 0x60
mov dword [esp + 0x10], eax
ja 0x41d2bf
cmp edx, 0x40
jbe 0x41d210
cmp edx, 0x5b
jb 0x41d2bf
cmp edx, 0x5f
je 0x41d2bf
cmp edx, 0x3a
je 0x41d2bf
cmp edx, 0x2f
jne 0x41d247
mov edx, dword [ecx + 0xc]
xor ebx, ebx
sub ebp, edx
mov edi, 0x480e4c
mov esi, 1
inc ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
jmp 0x41d1c7
cmp edx, 0x21
jne 0x41d257
or al, 2
mov dword [esp + 0x10], eax
jmp 0x41d1c7
cmp edx, 0x3f
jne 0x41d282
mov edx, dword [ecx + 0xc]
mov edi, 0x480c68
sub ebp, edx
mov esi, 2
inc ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ebx, 0x10
mov dword [esp + 0x20], ebp
jmp 0x41d1c7
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x98]
push eax
push str.tag_name_character
mov edi, 0x480e4c
mov esi, 1
push str.Incorrect__s_at_offset__d
push ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
call fcn.0042e324
add esp, 0x10
lea edx, [esp + 0x98]
jmp 0x41d405
mov eax, dword [ecx + 0xc]
mov edi, 0x480e4c
mov esi, 1
sub ebp, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ebx, esi
mov dword [esp + 0x20], ebp
jmp 0x41d1c7
test al, 2
je 0x41d39d
mov ecx, dword [esp + 0x14]
xor eax, 2
cmp ecx, 0x2d
mov dword [esp + 0x10], eax
jne 0x41d304
or al, 4
mov dword [esp + 0x10], eax
jmp 0x41d1c7
cmp ecx, 0x5b
jne 0x41d318
test al, 0x20
jne 0x41d32c
or al, 8
mov dword [esp + 0x10], eax
jmp 0x41d1c7
cmp ecx, 0x44
jne 0x41d32c
test al, 0x20
jne 0x41d32c
or al, 0x20
mov dword [esp + 0x10], eax
jmp 0x41d1c7
movsx ecx, byte [esp + 0x14]
push ecx
push 0x480e18
call fcn.0042e647
add esp, 8
mov edi, 0x480e4c
mov esi, 1
mov dword [esp + 0x18], edi
test eax, eax
mov dword [esp + 0x1c], esi
je 0x41d35f
mov ebx, 0x40
jmp 0x41d1c7
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x160]
push edx
push str.__tag
push str.Incorrect__s_at_offset__d
push eax
call fcn.0042e324
mov edx, dword [esp + 0x1dc]
add esp, 0x10
lea ecx, [esp + 0x160]
push ecx
lea ecx, [edx + 0x10]
call fcn.0044599d
or ebx, 0xffffffff
jmp 0x41d1c7
test al, 4
je 0x41d41d
xor eax, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
cmp eax, 0x2d
jne 0x41d3cd
mov edi, 0x480e0c
mov esi, 3
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ebx, 0x20
jmp 0x41d1c7
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xfc]
push eax
push str.comment_tag
mov edi, 0x480e4c
mov esi, 1
push str.Incorrect__s_at_offset__d
push ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
call fcn.0042e324
add esp, 0x10
lea edx, [esp + 0xfc]
mov eax, dword [esp + 0x1cc]
push edx
lea ecx, [eax + 0x10]
call fcn.0044599d
or ebx, 0xffffffff
jmp 0x41d1c7
test al, 8
je 0x41d497
xor eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
cmp eax, 0x43
jne 0x41d44d
mov edi, 0x480dfc
mov esi, 3
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ebx, 8
jmp 0x41d1c7
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x34]
push ecx
push 0x480df8
mov edi, 0x480e4c
mov esi, 1
push str.Incorrect__s_at_offset__d
push edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
call fcn.0042e324
mov ecx, dword [esp + 0x1dc]
add esp, 0x10
lea eax, [esp + 0x34]
add ecx, 0x10
push eax
call fcn.0044599d
or ebx, 0xffffffff
jmp 0x41d1c7
test al, 0x20
je 0x41d1c7
mov edx, dword [esp + 0x14]
cmp edx, 0x3c
jne 0x41d4b3
or al, 1
mov dword [esp + 0x10], eax
jmp 0x41d1c7
cmp edx, 0x3e
je 0x41d5ae
jmp 0x41d1c7
cmp dword [esp + 0x14], 0x3c
jne 0x41d4d5
mov dword [esp + 0x10], 1
jmp 0x41d1c7
movsx edx, byte [esp + 0x14]
push edx
push str.__t_n_r
mov ebx, 4
call fcn.0042e647
add esp, 8
test eax, eax
je 0x41d1b0
mov dword [esp + 0x10], 0x10
jmp 0x41d1c7
sub ebp, dword [ecx + 0xc]
dec ebp
cmp ebx, 4
je 0x41d5b8
cmp ebx, 2
je 0x41d5b8
mov cl, byte [esp + 0x10]
mov eax, 0x480df8
test cl, 0x20
jne 0x41d566
cmp ebx, 0x40
je 0x41d566
cmp ebx, 1
jne 0x41d537
mov eax, str.Element_tag
jmp 0x41d56b
test ebx, ebx
jne 0x41d542
mov eax, str.Element_end_tag
jmp 0x41d56b
cmp ebx, 8
jne 0x41d54e
mov eax, str.CDATA_Section
jmp 0x41d56b
cmp ebx, 0x10
jne 0x41d55a
mov eax, str.Processing_instruction
jmp 0x41d56b
cmp ebx, 0x20
jne 0x41d56b
mov eax, str.Comment
jmp 0x41d56b
mov eax, str.Doctype
mov esi, dword [esp + 0x1cc]
lea edx, [esp + 0x34]
or ebx, 0xffffffff
mov ecx, dword [esi + 4]
push ecx
push eax
push str._s_at_offset__d_unterminated
push edx
call fcn.0042e324
add esp, 0x10
lea eax, [esp + 0x34]
lea ecx, [esi + 0x10]
push eax
call fcn.0044599d
jmp 0x41d5b8
sub ebp, dword [ecx + 0xc]
dec ebp
jmp 0x41d5b8
mov edx, dword [ecx + 0xc]
mov ebx, 4
sub ebp, edx
dec ebp
jmp 0x41d5b8
mov eax, dword [ecx + 0xc]
mov ebx, 0x40
sub ebp, eax
mov ecx, dword [esp + 0x1c8]
lea eax, [ebp + 1]
pop edi
pop esi
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x1c4]
pop ebp
mov edx, dword [ecx + 4]
mov dword [ecx], ebx
sub eax, edx
mov dword [ecx + 8], eax
mov eax, ebx
pop ebx
add esp, 0x1b4
ret