Function at 0x44ba10
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x47b878
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x28]
mov esi, dword [edi + 0x2c]
xor ebp, ebp
lea ebx, [edi + 0x28]
mov dword [edi + 0x34], ebp
mov eax, dword [eax - 0xc]
dec eax
cmp esi, eax
mov dword [esp + 0x14], eax
jle 0x44ba67
mov dword [edi + 0x2c], 0xffffffff
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
mov eax, dword [ebx]
mov edx, dword [eax - 4]
sub eax, 0x10
mov eax, dword [eax + 8]
mov ecx, 1
sub ecx, edx
or eax, ecx
jge 0x44ba85
push ebp
mov ecx, ebx
call fcn.00402310
mov eax, dword [ebx]
add eax, esi
push eax
lea ecx, [esp + 0x14]
call fcn.00405920
mov edx, dword [edi + 0x54]
mov dword [esp + 0x20], ebp
lea ebx, [ebx]
cmp edx, ebp
je 0x44bac5
cmp dword [edi + 0x58], ebp
jne 0x44bac5
mov ecx, dword [ebx]
mov al, byte [esi + ecx]
cmp al, 0x20
je 0x44baba
cmp al, 0xa
je 0x44baba
cmp al, 0xd
jne 0x44bac5
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jle 0x44baa0
jmp 0x44bacd
mov eax, dword [esp + 0x14]
cmp esi, eax
jle 0x44bb0e
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0xfffffff0
mov dword [edi + 0x2c], ecx
mov dword [esp + 0x20], ecx
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44c0be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
cmp dword [edi + 0x4c], ebp
je 0x44bbba
lea ecx, [eax - 2]
cmp esi, ecx
jg 0x44bbad
mov eax, dword [ebx]
lea eax, [eax + esi + 2]
cmp byte [eax - 2], 0x2d
jne 0x44bb39
cmp byte [eax - 1], 0x2d
jne 0x44bb39
cmp byte [eax], 0x3e
je 0x44bb3f
inc esi
inc eax
cmp esi, ecx
jle 0x44bb28
cmp esi, ecx
mov eax, dword [esp + 0x14]
jg 0x44bbad
add esi, 3
lea ecx, [edi + 0x3c]
mov dword [edi + 0x34], ebp
mov dword [edi + 0x2c], esi
mov dword [edi + 0x50], ebp
mov dword [edi + 0x4c], ebp
mov dword [edi + 0x58], ebp
mov dword [edi + 0x54], ebp
mov dword [edi + 0x5c], 1
call fcn.004022c0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x20], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44c0be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
inc eax
mov dword [edi + 0x34], 6
mov dword [edi + 0x2c], eax
jmp 0x44bb6b
cmp dword [edi + 0x50], ebp
je 0x44bc60
lea ecx, [eax - 2]
cmp esi, ecx
jg 0x44bc34
mov eax, dword [ebx]
lea eax, [eax + esi + 2]
mov dl, 0x5d
cmp byte [eax - 2], dl
jne 0x44bbe1
cmp byte [eax - 1], dl
jne 0x44bbe1
cmp byte [eax], 0x3e
je 0x44bbe7
inc esi
inc eax
cmp esi, ecx
jle 0x44bbd2
cmp esi, ecx
mov eax, dword [esp + 0x14]
jg 0x44bc34
add esi, 3
lea ecx, [edi + 0x3c]
mov dword [edi + 0x34], ebp
mov dword [edi + 0x2c], esi
mov dword [edi + 0x50], ebp
mov dword [edi + 0x4c], ebp
mov dword [edi + 0x58], ebp
mov dword [edi + 0x54], ebp
mov dword [edi + 0x5c], 1
call fcn.004022c0
lea ecx, [esp + 0x10]
call fcn.00413d20
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
inc eax
lea ecx, [esp + 0x10]
mov dword [edi + 0x34], 7
mov dword [edi + 0x2c], eax
call fcn.00413d20
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
cmp dword [edi + 0x58], ebp
je 0x44bdaa
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx - 0xc]
test eax, eax
lea ebp, [edi + 0x44]
jne 0x44bcb4
mov ecx, dword [ebx]
mov edx, dword [esp + 0x14]
lea esp, [esp]
mov al, byte [ecx + esi]
cmp al, 0x20
je 0x44bc8f
cmp al, 0xa
je 0x44bc8f
cmp al, 0xd
jne 0x44bc99
inc esi
cmp esi, edx
jle 0x44bc80
jmp 0x44c0ab
cmp esi, edx
jg 0x44c0ab
xor edx, edx
mov dl, byte [ecx + esi]
mov ecx, ebp
push edx
call fcn.0041cd00
inc esi
jmp 0x44c0ab
mov edx, dword [ebx]
mov ebx, dword [esp + 0x14]
mov ecx, esi
lea esp, [esp]
mov al, byte [edx + esi]
cmp al, 0x22
je 0x44bcdc
cmp al, 0x27
je 0x44bcdc
cmp al, 0xa
je 0x44bcdc
cmp al, 0xd
je 0x44bcdc
cmp al, 0x3e
je 0x44bcdc
inc esi
cmp esi, ebx
jle 0x44bcc0
mov eax, esi
sub eax, ecx
push eax
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [edi + 0x28]
call fcn.004239b0
push eax
mov ecx, ebp
mov byte [esp + 0x24], 1
call fcn.004118d0
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 0
call fcn.00413d20
cmp esi, ebx
jle 0x44bd1f
push 0x481a9c
mov ecx, ebp
call fcn.00402f00
jmp 0x44c0ab
mov edx, dword [ebp]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x44bd89
mov ebx, 2
mov edi, edi
mov eax, dword [ebp]
mov cl, byte [eax]
cmp cl, 0x22
je 0x44bd3f
cmp cl, 0x27
jne 0x44bd89
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, ebp
call fcn.00408580
push eax
mov ecx, ebp
mov byte [esp + 0x24], bl
call fcn.00402990
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x20], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44bd7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x44bd30
mov ecx, dword [edi + 0x28]
mov dword [edi + 0x34], 3
mov dword [edi + 0x58], 0
cmp byte [esi + ecx], 0x3e
je 0x44c0b2
inc esi
jmp 0x44c0b2
cmp dword [edi + 0x5c], ebp
mov ecx, dword [ebx]
je 0x44be1d
mov edx, esi
mov al, byte [ecx + esi]
cmp al, 0xa
je 0x44bdcd
cmp al, 0xd
je 0x44bdcd
cmp al, 0x3c
je 0x44bdcd
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jle 0x44bdb3
jmp 0x44bddc
cmp esi, dword [esp + 0x14]
jg 0x44bddc
cmp byte [ecx + esi], 0x3c
jne 0x44bddc
mov dword [edi + 0x5c], ebp
mov eax, esi
sub eax, edx
push eax
push edx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [edi + 0x28]
call fcn.004239b0
lea ebp, [edi + 0x3c]
push eax
mov ecx, ebp
mov byte [esp + 0x24], 3
call fcn.00402b70
lea ecx, [esp + 0x14]
call fcn.00413d20
mov edx, dword [ebp]
mov eax, dword [edx - 0xc]
neg eax
sbb eax, eax
and eax, 4
mov dword [edi + 0x34], eax
jmp 0x44c0b2
mov al, byte [ecx + esi]
cmp al, 0x3c
jne 0x44bfcd
cmp edx, ebp
je 0x44be36
push str.Bad___symbol
jmp 0x44c0db
mov dword [edi + 0x54], 1
mov dword [edi + 0x50], ebp
mov dword [edi + 0x4c], ebp
mov dword [edi + 0x5c], ebp
mov dword [edi + 0x58], ebp
mov al, byte [ecx + esi + 1]
inc esi
cmp al, 0x20
je 0x44be49
cmp al, 0xa
je 0x44be49
cmp al, 0xd
je 0x44be49
cmp esi, dword [esp + 0x14]
jle 0x44be6a
push str.__symbol_not_allowed_at_the_end_of_a_line
jmp 0x44c0db
mov ebp, dword [esp + 0x14]
mov eax, ebp
sub eax, esi
mov ebx, 2
cmp eax, ebx
jl 0x44bea7
cmp byte [ecx + esi], 0x21
jne 0x44bea7
mov dl, byte [ecx + esi + 1]
cmp dl, 0x2d
jne 0x44bea7
cmp byte [ecx + esi + 2], 0x2d
jne 0x44bea7
mov dword [edi + 0x34], 6
mov dword [edi + 0x4c], 1
add esi, 3
jmp 0x44c0b2
cmp eax, 7
jl 0x44befb
cmp byte [ecx + esi], 0x21
jne 0x44befb
mov al, byte [ecx + esi + 1]
cmp al, 0x5b
jne 0x44befb
cmp byte [ecx + esi + 2], 0x43
jne 0x44befb
cmp byte [ecx + esi + 3], 0x44
jne 0x44befb
mov al, byte [ecx + esi + 4]
cmp al, 0x41
jne 0x44befb
cmp byte [ecx + esi + 5], 0x54
jne 0x44befb
cmp byte [ecx + esi + 6], 0x41
jne 0x44befb
cmp byte [ecx + esi + 7], 0x5b
jne 0x44befb
mov dword [edi + 0x34], 7
mov dword [edi + 0x50], 1
add esi, 8
jmp 0x44c0b2
mov edx, esi
lea ecx, [ecx]
mov al, byte [ecx + esi]
cmp al, 0x20
je 0x44bf20
cmp al, 0xa
je 0x44bf20
cmp al, 0xd
je 0x44bf20
cmp al, 0x2f
jne 0x44bf17
cmp esi, edx
jne 0x44bf20
cmp al, 0x3e
je 0x44bf20
inc esi
cmp esi, ebp
jle 0x44bf00
mov ecx, esi
sub ecx, edx
push ecx
push edx
lea edx, [esp + 0x1c]
push edx
lea ecx, [edi + 0x28]
call fcn.004239b0
lea ebp, [edi + 0x38]
push eax
mov ecx, ebp
mov byte [esp + 0x24], 4
call fcn.00402b70
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 0
call fcn.00413d20
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x44bf65
push str.Empty_element_name
jmp 0x44c0db
mov cl, byte [eax]
cmp cl, 0x3f
je 0x44bfb1
cmp cl, 0x21
je 0x44bfb1
cmp cl, 0x2f
jne 0x44bfa5
mov dword [edi + 0x34], ebx
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, ebp
call fcn.00408580
push eax
mov ecx, ebp
mov byte [esp + 0x24], 5
call fcn.00402b70
lea ecx, [esp + 0x14]
call fcn.00413d20
jmp 0x44c0b2
mov dword [edi + 0x34], 1
jmp 0x44c0b2
push ebp
lea ecx, [edi + 0x48]
mov dword [edi + 0x34], 5
call fcn.00402b70
mov ecx, ebp
call fcn.004022c0
jmp 0x44c0b2
cmp al, 0x3f
je 0x44c01d
cmp al, 0x2f
jne 0x44c004
mov edx, dword [esp + 0x14]
inc esi
cmp esi, edx
jg 0x44bff8
mov edi, edi
mov al, byte [ecx + esi]
cmp al, 0x20
je 0x44bff8
cmp al, 0xa
je 0x44bff8
cmp al, 0xd
je 0x44bff8
cmp al, 0x3e
je 0x44bff8
inc esi
cmp esi, edx
jle 0x44bfe0
mov dword [edi + 0x34], 2
jmp 0x44c0b2
cmp al, 0x3e
jne 0x44c026
lea ecx, [edi + 0x3c]
mov dword [edi + 0x58], ebp
mov dword [edi + 0x54], ebp
mov dword [edi + 0x5c], 1
call fcn.004022c0
mov dword [edi + 0x34], ebp
inc esi
jmp 0x44c0b2
cmp edx, ebp
je 0x44c0d6
cmp al, 0x3d
jne 0x44c03f
mov dword [edi + 0x34], ebp
mov dword [edi + 0x58], 1
inc esi
jmp 0x44c0b2
mov edx, esi
mov al, byte [ecx + esi]
cmp al, 0x20
je 0x44c061
cmp al, 0xa
je 0x44c061
cmp al, 0xd
je 0x44c061
cmp al, 0x3d
je 0x44c061
cmp al, 0x3e
je 0x44c061
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jle 0x44c041
mov ecx, esi
sub ecx, edx
push ecx
push edx
lea edx, [esp + 0x1c]
push edx
lea ecx, [edi + 0x28]
call fcn.004239b0
lea ebp, [edi + 0x40]
push eax
mov ecx, ebp
mov byte [esp + 0x24], 6
call fcn.00402b70
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 0
call fcn.00413d20
mov eax, dword [ebp]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x44c0a3
push str.Missing_attribute_name_before_
jmp 0x44c0db
lea ecx, [edi + 0x44]
call fcn.004022c0
mov dword [edi + 0x34], 0
lea ecx, [esp + 0x10]
mov dword [edi + 0x2c], esi
call fcn.00413d20
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
push str.Syntax_error
lea ecx, [edi + 0x24]
call fcn.00402c40
lea ecx, [esp + 0x10]
call fcn.00413d20
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret