Function at 0x46e960
Capabilities:
Parse credit card information

Disassembly:
mov eax, dword [esp + 4]
sub esp, 8
test eax, eax
jne 0x46e971
xor eax, eax
add esp, 8
ret
push ebx
push edi
mov ebx, 0x50
push 0x51
mov dword [esp + 0xc], ebx
call dword [0x490c9c]
mov edi, eax
add esp, 4
test edi, edi
jne 0x46e9a9
mov eax, dword [0x4a4528]
push str.xmlSaveUri:_out_of_memory_n
push eax
call dword [0x490ca8]
add esp, 8
pop edi
xor eax, eax
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x14]
push ebp
mov ebp, dword [ecx]
push esi
xor esi, esi
test ebp, ebp
je 0x46ea1c
cmp byte [ebp], 0
je 0x46ea13
lea ecx, [ecx]
cmp esi, ebx
jl 0x46e9de
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46eda4
mov dl, byte [ebp]
mov byte [esi + edi], dl
mov al, byte [ebp + 1]
inc esi
inc ebp
test al, al
jne 0x46e9c0
cmp esi, ebx
mov dword [esp + 0x10], ebx
jl 0x46ea13
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
mov dword [esp + 0x18], ebx
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed85
mov ecx, dword [esp + 0x1c]
mov byte [esi + edi], 0x3a
inc esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x46eb65
mov ecx, eax
cmp byte [ecx], 0
mov dword [esp + 0x14], ecx
je 0x46eb54
lea ebp, [esi + 3]
lea esp, [esp]
cmp ebp, ebx
jl 0x46ea62
add ebx, ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46f385
mov ecx, dword [esp + 0x14]
mov al, byte [ecx]
cmp al, 0x61
jl 0x46ea70
cmp al, 0x7a
jle 0x46eb41
cmp al, 0x41
jl 0x46ea7c
cmp al, 0x5a
jle 0x46eb41
cmp al, 0x30
jl 0x46ea88
cmp al, 0x39
jle 0x46eb41
cmp al, 0x2d
je 0x46eb41
cmp al, 0x5f
je 0x46eb41
cmp al, 0x2e
je 0x46eb41
cmp al, 0x21
je 0x46eb41
cmp al, 0x7e
je 0x46eb41
cmp al, 0x2a
je 0x46eb41
cmp al, 0x27
je 0x46eb41
cmp al, 0x28
je 0x46eb41
cmp al, 0x29
je 0x46eb41
cmp al, 0x3b
je 0x46eb41
cmp al, 0x3f
je 0x46eb41
cmp al, 0x3a
je 0x46eb41
cmp al, 0x40
je 0x46eb41
cmp al, 0x26
je 0x46eb41
cmp al, 0x3d
je 0x46eb41
cmp al, 0x2b
je 0x46eb41
cmp al, 0x24
je 0x46eb41
cmp al, 0x2c
je 0x46eb41
movzx ecx, al
inc dword [esp + 0x14]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ecx, 0x8000000f
jns 0x46eb0b
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov ecx, dword [esp + 0x14]
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46eb4b
mov byte [esi + edi], al
inc esi
inc ebp
inc ecx
mov dword [esp + 0x14], ecx
cmp byte [ecx], 0
jne 0x46ea40
cmp esi, ebx
jl 0x46f3a4
lea edx, [ebx + ebx + 1]
jmp 0x46f356
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46edc6
lea ecx, [esi + 3]
cmp ecx, ebx
jl 0x46eb95
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
mov dword [esp + 0x18], ebx
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46eda8
mov ecx, dword [esp + 0x1c]
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
mov eax, dword [ecx + 0x10]
inc esi
test eax, eax
je 0x46ecf2
cmp byte [eax], 0
mov dword [esp + 0x14], eax
je 0x46ecc8
lea ebp, [esi + 3]
mov edi, edi
cmp ebp, ebx
jl 0x46ebde
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed81
mov eax, dword [esp + 0x14]
mov al, byte [eax]
cmp al, 0x61
jl 0x46ebf0
cmp al, 0x7a
jle 0x46eca9
cmp al, 0x41
jl 0x46ebfc
cmp al, 0x5a
jle 0x46eca9
cmp al, 0x30
jl 0x46ec08
cmp al, 0x39
jle 0x46eca9
cmp al, 0x2d
je 0x46eca9
cmp al, 0x5f
je 0x46eca9
cmp al, 0x2e
je 0x46eca9
cmp al, 0x21
je 0x46eca9
cmp al, 0x7e
je 0x46eca9
cmp al, 0x2a
je 0x46eca9
cmp al, 0x27
je 0x46eca9
cmp al, 0x28
je 0x46eca9
cmp al, 0x29
je 0x46eca9
cmp al, 0x3b
je 0x46eca9
cmp al, 0x3a
je 0x46eca9
cmp al, 0x26
je 0x46eca9
cmp al, 0x3d
je 0x46eca9
cmp al, 0x2b
je 0x46eca9
cmp al, 0x24
je 0x46eca9
cmp al, 0x2c
je 0x46eca9
movzx ecx, al
inc dword [esp + 0x14]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ecx, 0x8000000f
jns 0x46ec77
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46ecb7
mov byte [esi + edi], al
mov eax, dword [esp + 0x14]
inc esi
inc ebp
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
jne 0x46ebc0
mov dword [esp + 0x10], ebx
lea eax, [esi + 3]
cmp eax, ebx
jl 0x46eced
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
mov dword [esp + 0x18], ebx
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed85
mov byte [esi + edi], 0x40
inc esi
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax + 0xc]
cmp byte [ebp], 0
je 0x46ed31
nop
cmp esi, ebx
jl 0x46ed1e
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46eda4
mov dl, byte [ebp]
mov byte [esi + edi], dl
mov al, byte [ebp + 1]
inc esi
inc ebp
test al, al
jne 0x46ed00
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x14]
test eax, eax
jle 0x46ef4b
lea edx, [esi + 0xa]
cmp edx, ebx
jl 0x46ed60
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46eda8
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x14]
push edx
lea eax, [esi + edi]
push 0x485924
push eax
call dword [0x4781dc]
add esp, 0xc
add esi, eax
jmp 0x46ef4b
mov dword [esp + 0x10], ebx
mov edx, dword [0x4a4528]
push str.xmlSaveUri:_out_of_memory_n
push edx
call dword [0x490ca8]
add esp, 8
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 8
ret
mov dword [esp + 0x10], ebx
mov eax, dword [0x4a4528]
push str.xmlSaveUri:_out_of_memory_n
push eax
call dword [0x490ca8]
add esp, 8
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 8
ret
mov eax, dword [ecx + 8]
test eax, eax
je 0x46ef18
lea ecx, [esi + 3]
cmp ecx, ebx
jl 0x46edf1
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed85
mov eax, dword [esp + 0x1c]
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
mov ebx, dword [eax + 8]
mov al, byte [ebx]
inc esi
test al, al
je 0x46ef4b
lea ebp, [esi + 3]
nop
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x46ee37
mov ecx, eax
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46f385
mov al, byte [ebx]
cmp al, 0x61
jl 0x46ee45
cmp al, 0x7a
jle 0x46ef07
cmp al, 0x41
jl 0x46ee51
cmp al, 0x5a
jle 0x46ef07
cmp al, 0x30
jl 0x46ee5d
cmp al, 0x39
jle 0x46ef07
cmp al, 0x2d
je 0x46ef07
cmp al, 0x5f
je 0x46ef07
cmp al, 0x2e
je 0x46ef07
cmp al, 0x21
je 0x46ef07
cmp al, 0x7e
je 0x46ef07
cmp al, 0x2a
je 0x46ef07
cmp al, 0x27
je 0x46ef07
cmp al, 0x28
je 0x46ef07
cmp al, 0x29
je 0x46ef07
cmp al, 0x24
je 0x46ef07
cmp al, 0x2c
je 0x46ef07
cmp al, 0x3b
je 0x46ef07
cmp al, 0x3a
je 0x46ef07
cmp al, 0x40
je 0x46ef07
cmp al, 0x26
je 0x46ef07
cmp al, 0x3d
je 0x46ef07
cmp al, 0x2b
je 0x46ef07
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x46eed5
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46ef0d
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x46ee10
jmp 0x46ef4b
cmp dword [ecx], 0
je 0x46ef4b
lea edx, [esi + 3]
cmp edx, ebx
jl 0x46ef41
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46eda8
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
inc esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x46f072
mov ebx, eax
cmp byte [ebx], 0
je 0x46f072
lea ebp, [esi + 3]
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x46ef8f
mov edx, eax
lea eax, [edx + edx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46f385
mov al, byte [ebx]
cmp al, 0x61
jl 0x46ef9d
cmp al, 0x7a
jle 0x46f063
cmp al, 0x41
jl 0x46efa9
cmp al, 0x5a
jle 0x46f063
cmp al, 0x30
jl 0x46efb5
cmp al, 0x39
jle 0x46f063
cmp al, 0x2d
je 0x46f063
cmp al, 0x5f
je 0x46f063
cmp al, 0x2e
je 0x46f063
cmp al, 0x21
je 0x46f063
cmp al, 0x7e
je 0x46f063
cmp al, 0x2a
je 0x46f063
cmp al, 0x27
je 0x46f063
cmp al, 0x28
je 0x46f063
cmp al, 0x29
je 0x46f063
cmp al, 0x2f
je 0x46f063
cmp al, 0x3b
je 0x46f063
cmp al, 0x40
je 0x46f063
cmp al, 0x26
je 0x46f063
cmp al, 0x3d
je 0x46f063
cmp al, 0x2b
je 0x46f063
cmp al, 0x24
je 0x46f063
cmp al, 0x2c
je 0x46f063
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x46f031
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46f069
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x46ef68
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1c]
test eax, eax
je 0x46f1db
mov eax, dword [esp + 0x10]
lea ecx, [esi + 3]
cmp ecx, eax
jl 0x46f0a8
add eax, eax
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed85
mov eax, dword [esp + 0x1c]
mov byte [esi + edi], 0x3f
mov ebx, dword [eax + 0x1c]
mov al, byte [ebx]
inc esi
test al, al
je 0x46f1db
lea ebp, [esi + 3]
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x46f0e8
mov ecx, eax
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46f385
mov al, byte [ebx]
cmp al, 0x61
jl 0x46f0f6
cmp al, 0x7a
jle 0x46f1cc
cmp al, 0x41
jl 0x46f102
cmp al, 0x5a
jle 0x46f1cc
cmp al, 0x30
jl 0x46f10e
cmp al, 0x39
jle 0x46f1cc
cmp al, 0x2d
je 0x46f1cc
cmp al, 0x5f
je 0x46f1cc
cmp al, 0x2e
je 0x46f1cc
cmp al, 0x21
je 0x46f1cc
cmp al, 0x7e
je 0x46f1cc
cmp al, 0x2a
je 0x46f1cc
cmp al, 0x27
je 0x46f1cc
cmp al, 0x28
je 0x46f1cc
cmp al, 0x29
je 0x46f1cc
cmp al, 0x3b
je 0x46f1cc
cmp al, 0x2f
je 0x46f1cc
cmp al, 0x3f
je 0x46f1cc
cmp al, 0x3a
je 0x46f1cc
cmp al, 0x40
je 0x46f1cc
cmp al, 0x26
je 0x46f1cc
cmp al, 0x3d
je 0x46f1cc
cmp al, 0x2b
je 0x46f1cc
cmp al, 0x24
je 0x46f1cc
cmp al, 0x2c
je 0x46f1cc
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x46f19a
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46f1d2
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x46f0c1
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x46f34a
mov ecx, dword [esp + 0x10]
lea eax, [esi + 3]
cmp eax, ecx
jl 0x46f212
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46ed85
mov eax, dword [esp + 0x1c]
mov byte [esi + edi], 0x23
mov ebx, dword [eax + 0x20]
mov al, byte [ebx]
inc esi
test al, al
je 0x46f34a
lea ebp, [esi + 3]
jmp 0x46f230
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x46f257
mov ecx, eax
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
je 0x46f385
mov al, byte [ebx]
cmp al, 0x61
jl 0x46f265
cmp al, 0x7a
jle 0x46f33b
cmp al, 0x41
jl 0x46f271
cmp al, 0x5a
jle 0x46f33b
cmp al, 0x30
jl 0x46f27d
cmp al, 0x39
jle 0x46f33b
cmp al, 0x2d
je 0x46f33b
cmp al, 0x5f
je 0x46f33b
cmp al, 0x2e
je 0x46f33b
cmp al, 0x21
je 0x46f33b
cmp al, 0x7e
je 0x46f33b
cmp al, 0x2a
je 0x46f33b
cmp al, 0x27
je 0x46f33b
cmp al, 0x28
je 0x46f33b
cmp al, 0x29
je 0x46f33b
cmp al, 0x3b
je 0x46f33b
cmp al, 0x2f
je 0x46f33b
cmp al, 0x3f
je 0x46f33b
cmp al, 0x3a
je 0x46f33b
cmp al, 0x40
je 0x46f33b
cmp al, 0x26
je 0x46f33b
cmp al, 0x3d
je 0x46f33b
cmp al, 0x2b
je 0x46f33b
cmp al, 0x24
je 0x46f33b
cmp al, 0x2c
je 0x46f33b
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x46f309
dec ecx
or ecx, 0xfffffff0
inc ecx
inc esi
inc ebp
cmp eax, 9
setle dl
mov byte [esi + edi - 1], 0x25
dec dl
and dl, 7
add dl, 0x30
add dl, al
inc esi
mov byte [esi + edi - 1], dl
inc ebp
cmp ecx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
inc esi
inc ebp
jmp 0x46f341
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x46f230
mov eax, dword [esp + 0x10]
cmp esi, eax
jl 0x46f3a4
lea edx, [eax + eax + 1]
push edx
push edi
call dword [0x490ca0]
mov edi, eax
add esp, 8
test edi, edi
jne 0x46f3a4
mov eax, dword [0x4a4528]
push str.xmlSaveUri:_out_of_memory_n
push eax
call dword [0x490ca8]
add esp, 8
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 8
ret
mov ecx, dword [0x4a4528]
push str.xmlSaveUri:_out_of_memory_n
push ecx
call dword [0x490ca8]
add esp, 8
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 8
ret
mov byte [esi + edi], 0
pop esi
pop ebp
mov eax, edi
pop edi
pop ebx
add esp, 8
ret