Function at 0x5a1cc0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x665a00
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0xd0]
mov dword [ebx + 0xdc], 0
mov eax, dword [eax - 0xc]
push esi
mov esi, dword [ebx + 0xd4]
dec eax
push edi
mov dword [ebp - 0x14], eax
cmp esi, eax
jle 0x5a1d10
mov dword [ebx + 0xd4], 0xffffffff
jmp 0x5a1ea1
mov eax, dword [ebx + 0xd0]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
or eax, ecx
jge 0x5a1d32
push 0
lea ecx, [ebx + 0xd0]
call fcn.00405120
mov eax, dword [ebx + 0xd0]
add eax, esi
push eax
lea ecx, [ebp - 0x10]
call fcn.0040aab0
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x14]
lea ecx, [ecx]
cmp dword [ebx + 0xfc], 0
je 0x5a1da1
cmp dword [ebx + 0x100], 0
jne 0x5a1da1
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax - 0xc]
cmp esi, ecx
jg 0x5a2501
mov al, byte [eax + esi]
cmp al, 0x20
je 0x5a1d9a
cmp esi, ecx
jg 0x5a2501
cmp al, 0xa
je 0x5a1d9a
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
jne 0x5a1da1
inc esi
cmp esi, edx
jle 0x5a1d50
jmp 0x5a1da5
cmp esi, edx
jle 0x5a1dd6
or ecx, 0xffffffff
mov dword [ebx + 0xd4], ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5a1ea1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5a1ea1
cmp dword [ebx + 0xf4], 0
je 0x5a1eca
lea eax, [edx - 2]
cmp esi, eax
jg 0x5a1e4a
lea edx, [esi + 2]
lea ecx, [ecx]
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov edi, dword [eax - 0xc]
cmp esi, edi
jg 0x5a2501
cmp byte [eax + esi], 0x2d
jne 0x5a1e3e
lea ecx, [edx - 1]
test ecx, ecx
js 0x5a2501
cmp ecx, edi
jg 0x5a2501
cmp byte [ecx + eax], 0x2d
jne 0x5a1e3e
test edx, edx
js 0x5a2501
cmp edx, edi
jg 0x5a2501
cmp byte [edx + eax], 0x3e
je 0x5a1e4a
mov eax, dword [ebp - 0x14]
inc esi
add eax, 0xfffffffe
inc edx
cmp esi, eax
jle 0x5a1df0
mov ecx, dword [ebp - 0x14]
lea eax, [ecx - 2]
cmp esi, eax
jg 0x5a1eb7
xor eax, eax
add esi, 3
lea ecx, [ebx + 0xe4]
mov dword [ebx + 0xdc], eax
mov dword [ebx + 0xd4], esi
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xf4], eax
mov dword [ebx + 0x100], eax
mov dword [ebx + 0xfc], eax
mov dword [ebx + 0x104], 1
call fcn.00404a30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
inc ecx
mov dword [ebx + 0xdc], 6
mov dword [ebx + 0xd4], ecx
jmp 0x5a1e92
cmp dword [ebx + 0xf8], 0
je 0x5a1f62
lea eax, [edx - 2]
cmp esi, eax
jg 0x5a1f3b
lea edx, [esi + 2]
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov edi, dword [eax - 0xc]
cmp esi, edi
jg 0x5a2501
cmp byte [eax + esi], 0x5d
jne 0x5a1f2f
lea ecx, [edx - 1]
test ecx, ecx
js 0x5a2501
cmp ecx, edi
jg 0x5a2501
cmp byte [ecx + eax], 0x5d
jne 0x5a1f2f
test edx, edx
js 0x5a2501
cmp edx, edi
jg 0x5a2501
cmp byte [edx + eax], 0x3e
je 0x5a1f3b
mov eax, dword [ebp - 0x14]
inc esi
add eax, 0xfffffffe
inc edx
cmp esi, eax
jle 0x5a1ee1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffe
cmp esi, eax
jle 0x5a1e54
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebx + 0xdc], 7
mov dword [ebx + 0xd4], ecx
jmp 0x5a1e92
cmp dword [ebx + 0x100], 0
je 0x5a215b
mov edx, dword [ebx + 0xec]
cmp dword [edx - 0xc], 0
jne 0x5a1fff
mov edx, dword [ebp - 0x14]
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax - 0xc]
cmp esi, ecx
jg 0x5a2501
mov al, byte [eax + esi]
cmp al, 0x20
je 0x5a1fba
cmp esi, ecx
jg 0x5a2501
cmp al, 0xa
je 0x5a1fba
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
jne 0x5a1fc1
inc esi
cmp esi, edx
jle 0x5a1f82
jmp 0x5a1fea
cmp esi, edx
jg 0x5a1fea
mov eax, dword [ebx + 0xd0]
cmp esi, dword [eax - 0xc]
jg 0x5a2501
mov al, byte [eax + esi]
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x14]
push ecx
lea ecx, [ebx + 0xec]
inc esi
call fcn.0043bbd0
mov dword [ebx + 0xdc], 0
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
mov edx, esi
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax - 0xc]
cmp esi, ecx
jg 0x5a2501
mov al, byte [eax + esi]
cmp al, 0x22
je 0x5a2057
cmp esi, ecx
jg 0x5a2501
cmp al, 0x27
je 0x5a2057
cmp esi, ecx
jg 0x5a2501
cmp al, 0xa
je 0x5a2057
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
je 0x5a2057
cmp esi, ecx
jg 0x5a2501
cmp al, 0x3e
je 0x5a2057
inc esi
cmp esi, dword [ebp - 0x14]
jle 0x5a2001
mov eax, esi
sub eax, edx
push eax
push edx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xd0]
call fcn.00414790
mov byte [ebp - 4], 2
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebx + 0xec]
call fcn.00408e10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
cmp esi, dword [ebp - 0x14]
jle 0x5a20a8
push 0x66eb64
lea ecx, [ebx + 0xec]
call fcn.00477400
jmp 0x5a1fea
mov edx, dword [ebx + 0xec]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x5a211a
mov eax, dword [ebx + 0xec]
mov ecx, dword [eax - 0xc]
test ecx, ecx
js 0x5a2501
mov al, byte [eax]
cmp al, 0x22
je 0x5a20d8
test ecx, ecx
js 0x5a2501
cmp al, 0x27
jne 0x5a211a
mov eax, dword [ebx + 0xec]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xec]
call fcn.0043ad60
mov byte [ebp - 4], 3
push eax
lea ecx, [ebx + 0xec]
call fcn.004149b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov edx, dword [ebx + 0xec]
cmp dword [edx - 0xc], 0
jne 0x5a20b5
mov dword [ebx + 0xdc], 3
mov dword [ebx + 0x100], 0
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
cmp esi, dword [eax - 0xc]
jg 0x5a2501
cmp byte [eax + esi], 0x3e
je 0x5a1ff4
inc esi
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
cmp dword [ebx + 0x104], 0
je 0x5a222e
mov edx, esi
lea ebx, [ebx]
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax - 0xc]
cmp esi, ecx
jg 0x5a2501
mov al, byte [eax + esi]
cmp al, 0xa
je 0x5a21b0
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
je 0x5a21b0
cmp esi, ecx
jg 0x5a2501
cmp al, 0x3c
je 0x5a21b0
inc esi
cmp esi, dword [ebp - 0x14]
jle 0x5a2170
jmp 0x5a21dc
cmp esi, dword [ebp - 0x14]
jg 0x5a21dc
test esi, esi
js 0x5a2501
mov eax, dword [ebx + 0xd0]
cmp esi, dword [eax - 0xc]
jg 0x5a2501
cmp byte [eax + esi], 0x3c
jne 0x5a21dc
mov dword [ebx + 0x104], 0
mov eax, esi
sub eax, edx
push eax
push edx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xd0]
call fcn.00414790
mov byte [ebp - 4], 4
push eax
lea ecx, [ebx + 0xe4]
call fcn.004149b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov edx, dword [ebx + 0xe4]
mov eax, dword [edx - 0xc]
neg eax
sbb eax, eax
and eax, 4
mov dword [ebx + 0xdc], eax
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
test esi, esi
js 0x5a2501
mov edx, dword [ebx + 0xd0]
mov ecx, dword [edx - 0xc]
cmp esi, ecx
jg 0x5a2501
mov al, byte [edx + esi]
cmp al, 0x3c
jne 0x5a25c2
xor eax, eax
cmp dword [ebx + 0xfc], eax
je 0x5a228e
push str.Bad___symbol
lea ecx, [ebx + 0xcc]
call fcn.00405830
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
inc esi
mov dword [ebx + 0xfc], 1
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xf4], eax
mov dword [ebx + 0x104], eax
mov dword [ebx + 0x100], eax
js 0x5a2501
mov edi, dword [ebx + 0xd0]
mov edx, dword [edi - 0xc]
cmp esi, edx
jg 0x5a2501
mov al, byte [edi + esi]
cmp al, 0x20
je 0x5a22ef
test esi, esi
js 0x5a2501
cmp esi, edx
jg 0x5a2501
cmp al, 0xa
je 0x5a22ef
cmp esi, edx
jg 0x5a2501
cmp al, 0xd
jne 0x5a22f7
inc esi
jns 0x5a22c0
jmp 0x5a2501
cmp esi, dword [ebp - 0x14]
jle 0x5a2306
push str.__symbol_not_allowed_at_the_end_of_a_line
jmp 0x5a2261
mov ecx, dword [ebp - 0x14]
sub ecx, esi
cmp ecx, 2
jl 0x5a2373
cmp esi, edx
jg 0x5a2501
cmp byte [edi + esi], 0x21
jne 0x5a2373
lea eax, [esi + 1]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
mov al, byte [eax + edi]
cmp al, 0x2d
jne 0x5a2373
lea eax, [esi + 2]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x2d
jne 0x5a2373
add esi, 3
mov dword [ebx + 0xdc], 6
mov dword [ebx + 0xf4], 1
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
cmp ecx, 7
jl 0x5a246d
cmp esi, edx
jg 0x5a2501
cmp byte [edi + esi], 0x21
jne 0x5a246d
lea eax, [esi + 1]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
mov al, byte [eax + edi]
cmp al, 0x5b
jne 0x5a246d
lea eax, [esi + 2]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x43
jne 0x5a246d
lea eax, [esi + 3]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x44
jne 0x5a246d
lea eax, [esi + 4]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
mov al, byte [eax + edi]
cmp al, 0x41
jne 0x5a246d
lea eax, [esi + 5]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x54
jne 0x5a246d
lea eax, [esi + 6]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x41
jne 0x5a246d
lea eax, [esi + 7]
test eax, eax
js 0x5a2501
cmp eax, edx
jg 0x5a2501
cmp byte [eax + edi], 0x5b
jne 0x5a246d
add esi, 8
mov dword [ebx + 0xdc], 7
mov dword [ebx + 0xf8], 1
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
mov ecx, esi
nop
test esi, esi
js 0x5a2501
cmp esi, edx
jg 0x5a2501
mov al, byte [edi + esi]
cmp al, 0x20
je 0x5a24b1
cmp esi, edx
jg 0x5a2501
cmp al, 0xa
je 0x5a24b1
cmp esi, edx
jg 0x5a2501
cmp al, 0xd
je 0x5a24b1
cmp esi, edx
jg 0x5a2501
cmp al, 0x2f
jne 0x5a24a3
cmp esi, ecx
jne 0x5a24b1
cmp esi, edx
jg 0x5a2501
cmp al, 0x3e
je 0x5a24b1
inc esi
cmp esi, dword [ebp - 0x14]
jle 0x5a2470
mov eax, esi
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xd0]
call fcn.00414790
mov byte [ebp - 4], 5
push eax
lea ecx, [ebx + 0xe0]
call fcn.004149b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov eax, dword [ebx + 0xe0]
cmp dword [eax - 0xc], 0
jne 0x5a24f8
push str.Empty_element_name
jmp 0x5a2261
mov ecx, eax
mov edx, dword [ecx - 0xc]
test edx, edx
jns 0x5a250b
push 0x80070057
call fcn.004011d0
mov cl, byte [ecx]
cmp cl, 0x3f
je 0x5a2596
test edx, edx
jns 0x5a2524
push 0x80070057
call fcn.004011d0
cmp cl, 0x21
je 0x5a2596
test edx, edx
jns 0x5a2537
push 0x80070057
call fcn.004011d0
cmp cl, 0x2f
jne 0x5a2581
mov dword [ebx + 0xdc], 2
mov eax, dword [eax - 0xc]
dec eax
push eax
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebx + 0xe0]
call fcn.0043ad60
mov byte [ebp - 4], 6
push eax
lea ecx, [ebx + 0xe0]
call fcn.004149b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
mov dword [ebx + 0xdc], 1
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
push eax
lea ecx, [ebx + 0xf0]
mov dword [ebx + 0xdc], 5
call fcn.00405830
lea ecx, [ebx + 0xe0]
call fcn.00404a30
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
cmp al, 0x3f
je 0x5a267f
cmp al, 0x2f
jne 0x5a262b
mov edi, dword [ebp - 0x14]
inc esi
cmp esi, edi
jg 0x5a2616
test esi, esi
js 0x5a2501
cmp esi, ecx
jg 0x5a2501
mov al, byte [edx + esi]
cmp al, 0x20
je 0x5a2616
cmp esi, ecx
jg 0x5a2501
cmp al, 0xa
je 0x5a2616
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
je 0x5a2616
cmp esi, ecx
jg 0x5a2501
cmp al, 0x3e
je 0x5a2616
inc esi
cmp esi, edi
jle 0x5a25d6
mov dword [ebx + 0xdc], 2
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
cmp al, 0x3e
jne 0x5a2664
xor edi, edi
lea ecx, [ebx + 0xe4]
mov dword [ebx + 0x100], edi
mov dword [ebx + 0xfc], edi
mov dword [ebx + 0x104], 1
call fcn.00404a30
inc esi
mov dword [ebx + 0xdc], edi
mov dword [ebx + 0xd4], esi
jmp 0x5a1e92
cmp dword [ebx + 0xfc], 0
je 0x5a272b
cmp al, 0x3d
jne 0x5a2685
mov dword [ebx + 0x100], 1
inc esi
jmp 0x5a1fea
mov edi, esi
test esi, esi
js 0x5a2501
cmp esi, ecx
jg 0x5a2501
mov al, byte [edx + esi]
cmp al, 0x20
je 0x5a26d4
cmp esi, ecx
jg 0x5a2501
cmp al, 0xa
je 0x5a26d4
cmp esi, ecx
jg 0x5a2501
cmp al, 0xd
je 0x5a26d4
cmp esi, ecx
jg 0x5a2501
cmp al, 0x3d
je 0x5a26d4
cmp esi, ecx
jg 0x5a2501
cmp al, 0x3e
je 0x5a26d4
inc esi
cmp esi, dword [ebp - 0x14]
jle 0x5a2687
mov eax, esi
sub eax, edi
push eax
push edi
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xd0]
call fcn.00414790
mov byte [ebp - 4], 7
push eax
lea ecx, [ebx + 0xe8]
call fcn.004149b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov edx, dword [ebx + 0xe8]
cmp dword [edx - 0xc], 0
jne 0x5a271b
push str.Missing_attribute_name_before_
jmp 0x5a2261
lea ecx, [ebx + 0xec]
call fcn.00404a30
jmp 0x5a1fea
push str.Syntax_error
jmp 0x5a2261