Function at 0x40fe51
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
push eax
xor eax, eax
cmp dword [ebp + 8], 0
je 0x410740
mov dword [ebp - 0x10], 0x50
push 0x51
call dword [0x58b638]
mov ebx, eax
pop eax
test ebx, ebx
je 0x410725
mov edx, dword [ebp + 8]
xor esi, esi
mov eax, dword [edx]
test eax, eax
je 0x40fedf
mov edi, eax
cmp byte [edi], 0
je 0x40feba
cmp esi, dword [ebp - 0x10]
jl 0x40feb1
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop eax
test ebx, ebx
je 0x410725
mov al, byte [edi]
inc edi
mov byte [esi + ebx], al
inc esi
jmp 0x40fe8c
cmp esi, dword [ebp - 0x10]
jl 0x40feda
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov byte [esi + ebx], 0x3a
inc esi
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
test eax, eax
je 0x410006
mov edi, eax
cmp byte [edi], 0
je 0x4105b7
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x40ff1b
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop eax
test ebx, ebx
je 0x410725
mov cl, byte [edi]
cmp cl, 0x3b
sete dl
cmp cl, 0x2f
sete al
or eax, edx
test al, 1
jne 0x40ffb7
cmp cl, 0x3f
je 0x40ffb7
cmp cl, 0x3a
je 0x40ffb7
cmp cl, 0x40
je 0x40ffb7
cmp cl, 0x26
je 0x40ffb7
cmp cl, 0x3d
je 0x40ffb7
cmp cl, 0x2b
je 0x40ffb7
cmp cl, 0x24
je 0x40ffb7
cmp cl, 0x2c
je 0x40ffb7
cmp cl, 0x5b
je 0x40ffb7
cmp cl, 0x5d
je 0x40ffb7
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x40ffb7
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x40ffb7
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x40ffb7
cmp cl, 0x2e
je 0x40ffb7
cmp cl, 0x21
je 0x40ffb7
cmp cl, 0x7e
je 0x40ffb7
cmp cl, 0x2a
je 0x40ffb7
cmp cl, 0x27
je 0x40ffb7
cmp cl, 0x28
je 0x40ffb7
cmp cl, 0x29
jne 0x40ffc1
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x40feef
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x40ffe7
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x40ffed
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x40fffe
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x40feef
mov edx, dword [ebp + 8]
cmp dword [edx + 0xc], 0
je 0x4101f2
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x410036
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
inc esi
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x41016a
mov edi, eax
cmp byte [edi], 0
je 0x410142
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x41007c
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop eax
test ebx, ebx
je 0x410725
mov cl, byte [edi]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4100f3
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4100f3
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x4100f3
cmp cl, 0x2e
je 0x4100f3
cmp cl, 0x21
je 0x4100f3
cmp cl, 0x7e
je 0x4100f3
cmp cl, 0x2a
je 0x4100f3
cmp cl, 0x27
je 0x4100f3
cmp cl, 0x28
je 0x4100f3
cmp cl, 0x29
je 0x4100f3
cmp cl, 0x3b
je 0x4100f3
cmp cl, 0x3a
je 0x4100f3
cmp cl, 0x26
je 0x4100f3
cmp cl, 0x3d
je 0x4100f3
cmp cl, 0x2b
je 0x4100f3
cmp cl, 0x24
je 0x4100f3
cmp cl, 0x2c
jne 0x4100fd
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x410050
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x410123
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x410129
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x41013a
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x410050
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x410165
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov byte [esi + ebx], 0x40
inc esi
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0xc]
cmp byte [edi], 0
je 0x41019e
cmp esi, dword [ebp - 0x10]
jl 0x410195
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop eax
test ebx, ebx
je 0x410725
mov al, byte [edi]
inc edi
mov byte [esi + ebx], al
inc esi
jmp 0x410170
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jle 0x41035e
lea eax, [esi + 0xa]
cmp eax, dword [ebp - 0x10]
jl 0x4101ce
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
sub eax, esi
push dword [edx + 0x14]
push 0x5dd4fd
push eax
lea eax, [ebx + esi]
push eax
call sub.msvcrt.dll__snprintf
add esp, 0x10
add esi, eax
jmp 0x41035e
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0
je 0x410329
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x410222
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop edi
test eax, eax
je 0x410725
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
inc esi
mov edx, dword [ebp + 8]
mov edi, dword [edx + 8]
cmp byte [edi], 0
je 0x41035e
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x41025e
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov cl, byte [edi]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4102da
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4102da
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x4102da
cmp cl, 0x2e
je 0x4102da
cmp cl, 0x21
je 0x4102da
cmp cl, 0x7e
je 0x4102da
cmp cl, 0x2a
je 0x4102da
cmp cl, 0x27
je 0x4102da
cmp cl, 0x28
je 0x4102da
cmp cl, 0x29
je 0x4102da
cmp cl, 0x24
je 0x4102da
cmp cl, 0x2c
je 0x4102da
cmp cl, 0x3b
je 0x4102da
cmp cl, 0x3a
je 0x4102da
cmp cl, 0x40
je 0x4102da
cmp cl, 0x26
je 0x4102da
cmp cl, 0x3d
je 0x4102da
cmp cl, 0x2b
jne 0x4102e4
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x410232
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x41030a
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x410310
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x410321
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x410232
mov edx, dword [ebp + 8]
cmp dword [edx], 0
je 0x41035e
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x410354
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop edi
test eax, eax
je 0x410725
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
inc esi
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
test eax, eax
je 0x410465
mov edi, eax
cmp byte [edi], 0
je 0x410465
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x41039a
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov cl, byte [edi]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x410416
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x410416
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x410416
cmp cl, 0x2e
je 0x410416
cmp cl, 0x21
je 0x410416
cmp cl, 0x7e
je 0x410416
cmp cl, 0x2a
je 0x410416
cmp cl, 0x27
je 0x410416
cmp cl, 0x28
je 0x410416
cmp cl, 0x29
je 0x410416
cmp cl, 0x2f
je 0x410416
cmp cl, 0x3b
je 0x410416
cmp cl, 0x40
je 0x410416
cmp cl, 0x26
je 0x410416
cmp cl, 0x3d
je 0x410416
cmp cl, 0x2b
je 0x410416
cmp cl, 0x24
je 0x410416
cmp cl, 0x2c
jne 0x410420
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x41036e
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x410446
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x41044c
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x41045d
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x41036e
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1c], 0
je 0x4105b7
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x410495
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop edi
test eax, eax
je 0x410725
mov byte [esi + ebx], 0x3f
inc esi
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
cmp byte [edi], 0
je 0x4105b7
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x4104cc
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov cl, byte [edi]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x410568
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x410568
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x410568
cmp cl, 0x2e
je 0x410568
cmp cl, 0x21
je 0x410568
cmp cl, 0x7e
je 0x410568
cmp cl, 0x2a
je 0x410568
cmp cl, 0x27
je 0x410568
cmp cl, 0x28
je 0x410568
cmp cl, 0x29
je 0x410568
cmp cl, 0x3b
sete dl
cmp cl, 0x2f
sete al
or eax, edx
test al, 1
jne 0x410568
cmp cl, 0x3f
je 0x410568
cmp cl, 0x3a
je 0x410568
cmp cl, 0x40
je 0x410568
cmp cl, 0x26
je 0x410568
cmp cl, 0x3d
je 0x410568
cmp cl, 0x2b
je 0x410568
cmp cl, 0x24
je 0x410568
cmp cl, 0x2c
je 0x410568
cmp cl, 0x5b
je 0x410568
cmp cl, 0x5d
jne 0x410572
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x4104a0
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x410598
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x41059e
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x4105af
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x4104a0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x20], 0
je 0x410709
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x4105e7
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
pop ecx
mov ebx, eax
pop edi
test eax, eax
je 0x410725
mov byte [esi + ebx], 0x23
inc esi
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x20]
cmp byte [edi], 0
je 0x410709
lea eax, [esi + 3]
cmp eax, dword [ebp - 0x10]
jl 0x41061e
shl dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
inc eax
push eax
push ebx
call dword [0x58b634]
mov ebx, eax
pop eax
test ebx, ebx
pop edx
je 0x410725
mov cl, byte [edi]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4106ba
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4106ba
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x4106ba
cmp cl, 0x2e
je 0x4106ba
cmp cl, 0x21
je 0x4106ba
cmp cl, 0x7e
je 0x4106ba
cmp cl, 0x2a
je 0x4106ba
cmp cl, 0x27
je 0x4106ba
cmp cl, 0x28
je 0x4106ba
cmp cl, 0x29
je 0x4106ba
cmp cl, 0x3b
sete dl
cmp cl, 0x2f
sete al
or eax, edx
test al, 1
jne 0x4106ba
cmp cl, 0x3f
je 0x4106ba
cmp cl, 0x3a
je 0x4106ba
cmp cl, 0x40
je 0x4106ba
cmp cl, 0x26
je 0x4106ba
cmp cl, 0x3d
je 0x4106ba
cmp cl, 0x2b
je 0x4106ba
cmp cl, 0x24
je 0x4106ba
cmp cl, 0x2c
je 0x4106ba
cmp cl, 0x5b
je 0x4106ba
cmp cl, 0x5d
jne 0x4106c4
mov byte [esi + ebx], cl
inc edi
inc esi
jmp 0x4105f2
movzx edx, cl
mov eax, edx
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov byte [esi + ebx], 0x25
inc esi
inc edi
mov ecx, esi
inc esi
cmp eax, 9
jle 0x4106ea
mov al, byte [ebp - 0x14]
add eax, 0x37
jmp 0x4106f0
mov al, byte [ebp - 0x14]
add eax, 0x30
mov byte [ecx + ebx], al
mov ecx, esi
lea eax, [edx + 0x37]
inc esi
cmp edx, 9
jg 0x410701
lea eax, [edx + 0x30]
mov byte [ecx + ebx], al
jmp 0x4105f2
cmp esi, dword [ebp - 0x10]
jl 0x41073a
mov edx, dword [ebp - 0x10]
lea eax, [edx + edx + 1]
push eax
push ebx
call dword [0x58b634]
pop edx
mov ebx, eax
pop ecx
test eax, eax
jne 0x41073a
push str.xmlSaveUri:_out_of_memory_n
push dword [0x621be4]
call dword [0x58b618]
xor eax, eax
jmp 0x410740
mov byte [esi + ebx], 0
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret