Function at 0x452c10
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
xor ebx, ebx
mov edi, dword [ebp + 8]
test edi, edi
je 0x4534b9
mov dword [esp], 0x51
call dword [0x5dd278]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [edi]
test ecx, ecx
jne 0x452c4c
mov esi, 0x50
xor edx, edx
jmp 0x452cb9
mov esi, 0x50
xor edx, edx
jmp 0x452c88
cmp edx, esi
jl 0x452c81
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
mov ecx, dword [ebp - 0x28]
je 0x45349d
mov al, byte [ecx + edx]
mov byte [ebx + edx], al
inc edx
cmp byte [ecx + edx], 0
jne 0x452c55
cmp edx, esi
jl 0x452cb4
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x3a
inc edx
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x452dc4
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x452db2
lea eax, [edx + 3]
cmp eax, esi
jl 0x452cf6
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx - 1]
cmp al, 0x2f
je 0x452d68
cmp al, 0x3b
je 0x452d68
cmp al, 0x3f
je 0x452d68
cmp al, 0x3a
je 0x452d68
cmp al, 0x40
je 0x452d68
cmp al, 0x26
je 0x452d68
cmp al, 0x3d
je 0x452d68
cmp al, 0x2b
je 0x452d68
cmp al, 0x24
je 0x452d68
cmp al, 0x2c
je 0x452d68
cmp al, 0x5b
je 0x452d68
cmp al, 0x5d
je 0x452d68
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x452d68
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x452d68
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x452d68
cmp al, 0x5f
je 0x452d68
cmp al, 0x2d
je 0x452d68
cmp al, 0x2e
je 0x452d68
cmp al, 0x21
je 0x452d68
cmp al, 0x7e
je 0x452d68
cmp al, 0x2a
je 0x452d68
cmp al, 0x27
je 0x452d68
cmp al, 0x28
je 0x452d68
cmp al, 0x29
jne 0x452d6e
mov byte [ebx + edx], al
inc edx
jmp 0x452daf
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax - 1], 0
jne 0x452ccd
jmp 0x453355
cmp dword [edi + 0xc], 0
je 0x452fc0
lea eax, [edx + 3]
cmp eax, esi
jl 0x452df7
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x2f
mov byte [ebx + edx + 1], 0x2f
mov ecx, dword [edi + 0x10]
add edx, 2
test ecx, ecx
je 0x452f20
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x452ee5
cmp eax, esi
jl 0x452e3d
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx - 1]
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x452e9b
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x452e9b
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x452e9b
cmp al, 0x5f
je 0x452e9b
cmp al, 0x2d
je 0x452e9b
cmp al, 0x2e
je 0x452e9b
cmp al, 0x21
je 0x452e9b
cmp al, 0x7e
je 0x452e9b
cmp al, 0x2a
je 0x452e9b
cmp al, 0x27
je 0x452e9b
cmp al, 0x28
je 0x452e9b
cmp al, 0x29
je 0x452e9b
cmp al, 0x3b
je 0x452e9b
cmp al, 0x3a
je 0x452e9b
cmp al, 0x26
je 0x452e9b
cmp al, 0x3d
je 0x452e9b
cmp al, 0x2b
je 0x452e9b
cmp al, 0x24
je 0x452e9b
cmp al, 0x2c
jne 0x452ea1
mov byte [ebx + edx], al
inc edx
jmp 0x452ee2
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax - 1], 0
lea eax, [edx + 3]
jne 0x452e17
cmp eax, esi
jl 0x452f1b
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x40
inc edx
mov ecx, dword [edi + 0xc]
jmp 0x452f58
cmp edx, esi
jl 0x452f51
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
mov ecx, dword [ebp - 0x28]
je 0x45349d
mov al, byte [ecx]
inc ecx
mov byte [ebx + edx], al
inc edx
cmp byte [ecx], 0
jne 0x452f25
cmp dword [edi + 0x14], 0
jle 0x453129
lea eax, [edx + 0xa]
cmp eax, esi
jl 0x452f90
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x24], edx
mov dword [esp + 0xc], eax
mov eax, esi
sub eax, edx
mov dword [esp + 8], 0x652e11
mov dword [esp + 4], eax
lea eax, [ebx + edx]
mov dword [esp], eax
call sub.msvcrt.dll__snprintf
mov edx, dword [ebp - 0x24]
lea edx, [eax + edx]
jmp 0x453129
cmp dword [edi + 8], 0
je 0x4530ef
lea eax, [edx + 3]
cmp eax, esi
jl 0x452ff3
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x2f
mov byte [ebx + edx + 1], 0x2f
mov ecx, dword [edi + 8]
add edx, 2
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x4530e0
lea eax, [edx + 3]
cmp eax, esi
jl 0x453034
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx - 1]
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x453096
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x453096
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x453096
cmp al, 0x5f
je 0x453096
cmp al, 0x2d
je 0x453096
cmp al, 0x2e
je 0x453096
cmp al, 0x21
je 0x453096
cmp al, 0x7e
je 0x453096
cmp al, 0x2a
je 0x453096
cmp al, 0x27
je 0x453096
cmp al, 0x28
je 0x453096
cmp al, 0x29
je 0x453096
cmp al, 0x24
je 0x453096
cmp al, 0x2c
je 0x453096
cmp al, 0x3b
je 0x453096
cmp al, 0x3a
je 0x453096
cmp al, 0x40
je 0x453096
cmp al, 0x26
je 0x453096
cmp al, 0x3d
je 0x453096
cmp al, 0x2b
jne 0x45309c
mov byte [ebx + edx], al
inc edx
jmp 0x4530dd
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax - 1], 0
jne 0x45300b
jmp 0x453129
cmp dword [edi], 0
je 0x453129
lea eax, [edx + 3]
cmp eax, esi
jl 0x45311d
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x2f
mov byte [ebx + edx + 1], 0x2f
add edx, 2
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x45321f
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x453212
lea eax, [edx + 3]
cmp eax, esi
jl 0x453166
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx - 1]
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x4531c8
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x4531c8
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x4531c8
cmp al, 0x5f
je 0x4531c8
cmp al, 0x2d
je 0x4531c8
cmp al, 0x2e
je 0x4531c8
cmp al, 0x21
je 0x4531c8
cmp al, 0x7e
je 0x4531c8
cmp al, 0x2a
je 0x4531c8
cmp al, 0x27
je 0x4531c8
cmp al, 0x28
je 0x4531c8
cmp al, 0x29
je 0x4531c8
cmp al, 0x2f
je 0x4531c8
cmp al, 0x3b
je 0x4531c8
cmp al, 0x40
je 0x4531c8
cmp al, 0x26
je 0x4531c8
cmp al, 0x3d
je 0x4531c8
cmp al, 0x2b
je 0x4531c8
cmp al, 0x24
je 0x4531c8
cmp al, 0x2c
jne 0x4531ce
mov byte [ebx + edx], al
inc edx
jmp 0x45320f
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax - 1], 0
jne 0x45313d
cmp dword [edi + 0x1c], 0
je 0x453355
lea eax, [edx + 3]
cmp eax, esi
jl 0x453252
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x3f
inc edx
mov ecx, dword [edi + 0x1c]
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x453348
lea eax, [edx + 3]
cmp eax, esi
jl 0x45328c
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx - 1]
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x4532fe
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x4532fe
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x4532fe
cmp al, 0x5f
je 0x4532fe
cmp al, 0x2d
je 0x4532fe
cmp al, 0x2e
je 0x4532fe
cmp al, 0x21
je 0x4532fe
cmp al, 0x7e
je 0x4532fe
cmp al, 0x2a
je 0x4532fe
cmp al, 0x27
je 0x4532fe
cmp al, 0x28
je 0x4532fe
cmp al, 0x29
je 0x4532fe
cmp al, 0x2f
je 0x4532fe
cmp al, 0x3b
je 0x4532fe
cmp al, 0x3f
je 0x4532fe
cmp al, 0x3a
je 0x4532fe
cmp al, 0x40
je 0x4532fe
cmp al, 0x26
je 0x4532fe
cmp al, 0x3d
je 0x4532fe
cmp al, 0x2b
je 0x4532fe
cmp al, 0x24
je 0x4532fe
cmp al, 0x2c
je 0x4532fe
cmp al, 0x5b
je 0x4532fe
cmp al, 0x5d
jne 0x453304
mov byte [ebx + edx], al
inc edx
jmp 0x453345
mov ecx, dword [ebp - 0x2c]
movzx eax, byte [ecx - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax - 1], 0
jne 0x453263
cmp dword [edi + 0x20], 0
je 0x45347c
lea eax, [edx + 3]
cmp eax, esi
jl 0x453388
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov byte [ebx + edx], 0x23
inc edx
mov edi, dword [edi + 0x20]
jmp 0x453471
lea eax, [edx + 3]
cmp eax, esi
jl 0x4533be
add esi, esi
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
lea eax, [esi + 1]
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
je 0x45349d
mov al, byte [edi - 1]
lea ecx, [eax - 0x41]
cmp cl, 0x19
jbe 0x45342d
lea ecx, [eax - 0x61]
cmp cl, 0x19
jbe 0x45342d
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x45342d
cmp al, 0x5f
je 0x45342d
cmp al, 0x2d
je 0x45342d
cmp al, 0x2e
je 0x45342d
cmp al, 0x21
je 0x45342d
cmp al, 0x7e
je 0x45342d
cmp al, 0x2a
je 0x45342d
cmp al, 0x27
je 0x45342d
cmp al, 0x28
je 0x45342d
cmp al, 0x29
je 0x45342d
cmp al, 0x2f
je 0x45342d
cmp al, 0x3b
je 0x45342d
cmp al, 0x3f
je 0x45342d
cmp al, 0x3a
je 0x45342d
cmp al, 0x40
je 0x45342d
cmp al, 0x26
je 0x45342d
cmp al, 0x3d
je 0x45342d
cmp al, 0x2b
je 0x45342d
cmp al, 0x24
je 0x45342d
cmp al, 0x2c
je 0x45342d
cmp al, 0x5b
je 0x45342d
cmp al, 0x5d
jne 0x453433
mov byte [ebx + edx], al
inc edx
jmp 0x453471
movzx eax, byte [edi - 1]
mov ecx, eax
and eax, 0xf
sar ecx, 4
mov dword [ebp - 0x1c], eax
cmp ecx, 0xa
mov byte [ebx + edx], 0x25
setge al
dec eax
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 1], al
cmp dword [ebp - 0x1c], 0xa
setge al
dec eax
mov cl, byte [ebp - 0x1c]
and eax, 0xfffffff9
lea eax, [eax + ecx + 0x37]
mov byte [ebx + edx + 2], al
add edx, 3
inc edi
cmp byte [edi - 1], 0
jne 0x453395
cmp edx, esi
jl 0x4534b5
lea eax, [esi + esi + 1]
mov dword [esp], ebx
mov dword [ebp - 0x24], edx
mov dword [esp + 4], eax
call dword [0x5dd27c]
mov edx, dword [ebp - 0x24]
mov ebx, eax
test eax, eax
jne 0x4534b5
mov eax, dword [0x696e30]
mov dword [esp + 4], str.xmlSaveUri:_out_of_memory_n
mov dword [esp], eax
call dword [0x5dd298]
jmp 0x4534b9
mov byte [ebx + edx], 0
add esp, 0x3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret