Function at 0x28ad5419
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push edi
mov edi, dword [ebp + 8]
test edi, edi
jne 0x28ad542e
xor eax, eax
jmp 0x28ad5db9
push ebx
push 0x51
mov dword [ebp - 4], 0x50
call dword [0x28b82844]
mov ebx, eax
test ebx, ebx
pop ecx
jne 0x28ad5456
mov ecx, str.saving_URI_n
call fcn.28ad43f5
xor eax, eax
jmp 0x28ad5db8
mov eax, dword [edi]
push esi
xor esi, esi
test eax, eax
je 0x28ad54b6
cmp byte [eax], 0
mov dword [ebp - 8], eax
je 0x28ad54b1
cmp esi, dword [ebp - 4]
jl 0x28ad5486
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [esi + ebx], cl
inc esi
inc eax
cmp byte [eax], 0
mov dword [ebp - 8], eax
jne 0x28ad5467
cmp esi, dword [ebp - 4]
jl 0x28ad54b1
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov byte [esi + ebx], 0x3a
inc esi
mov eax, dword [edi + 4]
xor ecx, ecx
cmp eax, ecx
je 0x28ad55ea
cmp byte [eax], cl
mov dword [ebp - 8], eax
je 0x28ad5c49
lea eax, [esi + 3]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jl 0x28ad54f0
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp - 8]
mov al, byte [eax]
cmp al, 0x3b
je 0x28ad55cf
cmp al, 0x2f
je 0x28ad55cf
cmp al, 0x3f
je 0x28ad55cf
cmp al, 0x3a
je 0x28ad55cf
cmp al, 0x40
je 0x28ad55cf
cmp al, 0x26
je 0x28ad55cf
cmp al, 0x3d
je 0x28ad55cf
cmp al, 0x2b
je 0x28ad55cf
cmp al, 0x24
je 0x28ad55cf
cmp al, 0x2c
je 0x28ad55cf
cmp al, 0x5b
je 0x28ad55cf
cmp al, 0x5d
je 0x28ad55cf
cmp al, 0x61
jl 0x28ad5559
cmp al, 0x7a
jle 0x28ad55cf
cmp al, 0x41
jl 0x28ad5561
cmp al, 0x5a
jle 0x28ad55cf
cmp al, 0x30
jl 0x28ad5569
cmp al, 0x39
jle 0x28ad55cf
cmp al, 0x2d
je 0x28ad55cf
cmp al, 0x5f
je 0x28ad55cf
cmp al, 0x2e
je 0x28ad55cf
cmp al, 0x21
je 0x28ad55cf
cmp al, 0x7e
je 0x28ad55cf
cmp al, 0x2a
je 0x28ad55cf
cmp al, 0x27
je 0x28ad55cf
cmp al, 0x28
je 0x28ad55cf
cmp al, 0x29
je 0x28ad55cf
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc dword [ebp - 8]
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp - 0xc]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
jmp 0x28ad55d9
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp byte [eax], 0
jne 0x28ad54d4
jmp 0x28ad5c49
cmp dword [edi + 0xc], ecx
je 0x28ad57bd
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad5612
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
mov eax, dword [edi + 0x10]
inc esi
test eax, eax
je 0x28ad573f
cmp byte [eax], 0
mov dword [ebp - 8], eax
je 0x28ad571b
lea eax, [esi + 3]
mov dword [ebp - 0xc], eax
jmp 0x28ad563e
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jl 0x28ad565a
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 8]
mov al, byte [eax]
cmp al, 0x61
jl 0x28ad566b
cmp al, 0x7a
jle 0x28ad5705
cmp al, 0x41
jl 0x28ad5677
cmp al, 0x5a
jle 0x28ad5705
cmp al, 0x30
jl 0x28ad5683
cmp al, 0x39
jle 0x28ad5705
cmp al, 0x2d
je 0x28ad5705
cmp al, 0x5f
je 0x28ad5705
cmp al, 0x2e
je 0x28ad5705
cmp al, 0x21
je 0x28ad5705
cmp al, 0x7e
je 0x28ad5705
cmp al, 0x2a
je 0x28ad5705
cmp al, 0x27
je 0x28ad5705
cmp al, 0x28
je 0x28ad5705
cmp al, 0x29
je 0x28ad5705
cmp al, 0x3b
je 0x28ad5705
cmp al, 0x3a
je 0x28ad5705
cmp al, 0x26
je 0x28ad5705
cmp al, 0x3d
je 0x28ad5705
cmp al, 0x2b
je 0x28ad5705
cmp al, 0x24
je 0x28ad5705
cmp al, 0x2c
je 0x28ad5705
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc dword [ebp - 8]
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp - 0xc]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
jmp 0x28ad570f
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp byte [eax], 0
jne 0x28ad563b
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad573a
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov byte [esi + ebx], 0x40
inc esi
mov eax, dword [edi + 0xc]
jmp 0x28ad576a
cmp esi, dword [ebp - 4]
jl 0x28ad5763
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [esi + ebx], cl
inc esi
inc eax
cmp byte [eax], 0
mov dword [ebp - 8], eax
jne 0x28ad5744
cmp dword [edi + 0x14], 0
jle 0x28ad5911
lea eax, [esi + 0xa]
cmp eax, dword [ebp - 4]
jl 0x28ad579b
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp + 8]
mov ebx, eax
push dword [edi + 0x14]
mov eax, dword [ebp - 4]
sub eax, esi
push 0x28b67be8
push eax
lea eax, [esi + ebx]
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x10
add esi, eax
jmp 0x28ad5911
cmp dword [edi + 8], ecx
je 0x28ad58e7
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad57e2
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp + 8]
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
mov edi, dword [eax + 8]
inc esi
cmp byte [edi], 0
mov dword [ebp - 8], edi
je 0x28ad5911
lea eax, [esi + 3]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jl 0x28ad5823
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp - 8]
mov ebx, eax
mov al, byte [edi]
cmp al, 0x61
jl 0x28ad5831
cmp al, 0x7a
jle 0x28ad58d1
cmp al, 0x41
jl 0x28ad583d
cmp al, 0x5a
jle 0x28ad58d1
cmp al, 0x30
jl 0x28ad5849
cmp al, 0x39
jle 0x28ad58d1
cmp al, 0x2d
je 0x28ad58d1
cmp al, 0x5f
je 0x28ad58d1
cmp al, 0x2e
je 0x28ad58d1
cmp al, 0x21
je 0x28ad58d1
cmp al, 0x7e
je 0x28ad58d1
cmp al, 0x2a
je 0x28ad58d1
cmp al, 0x27
je 0x28ad58d1
cmp al, 0x28
je 0x28ad58d1
cmp al, 0x29
je 0x28ad58d1
cmp al, 0x24
je 0x28ad58d1
cmp al, 0x2c
je 0x28ad58d1
cmp al, 0x3b
je 0x28ad58d1
cmp al, 0x3a
je 0x28ad58d1
cmp al, 0x40
je 0x28ad58d1
cmp al, 0x26
je 0x28ad58d1
cmp al, 0x3d
je 0x28ad58d1
cmp al, 0x2b
je 0x28ad58d1
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc edi
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp - 0xc]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
jmp 0x28ad58d9
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
inc edi
cmp byte [edi], 0
mov dword [ebp - 8], edi
jne 0x28ad5804
jmp 0x28ad5911
cmp dword [edi], ecx
je 0x28ad5911
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad5907
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov byte [esi + ebx], 0x2f
inc esi
mov byte [esi + ebx], 0x2f
inc esi
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x18]
test edi, edi
je 0x28ad5a86
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 8], edi
je 0x28ad5996
cmp byte [edi], 0x2f
jne 0x28ad5996
lea ecx, [edi + 1]
mov dword [ebp - 0xc], ecx
mov cl, byte [ecx]
cmp cl, 0x61
jl 0x28ad593f
cmp cl, 0x7a
jle 0x28ad5949
cmp cl, 0x41
jl 0x28ad5996
cmp cl, 0x5a
jg 0x28ad5996
cmp byte [edi + 2], 0x3a
jne 0x28ad5996
mov ecx, str.file
call fcn.28afefd1
test eax, eax
je 0x28ad5996
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad597c
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp - 8]
mov ebx, eax
mov al, byte [edi]
mov edi, dword [ebp - 0xc]
mov byte [esi + ebx], al
mov al, byte [edi]
inc esi
mov byte [esi + ebx], al
inc esi
inc edi
mov al, byte [edi]
mov byte [esi + ebx], al
inc esi
inc edi
mov dword [ebp - 8], edi
cmp byte [edi], 0
je 0x28ad5a86
lea eax, [esi + 3]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jl 0x28ad59c4
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp - 8]
mov ebx, eax
mov al, byte [edi]
cmp al, 0x61
jl 0x28ad59d2
cmp al, 0x7a
jle 0x28ad5a72
cmp al, 0x41
jl 0x28ad59de
cmp al, 0x5a
jle 0x28ad5a72
cmp al, 0x30
jl 0x28ad59ea
cmp al, 0x39
jle 0x28ad5a72
cmp al, 0x2d
je 0x28ad5a72
cmp al, 0x5f
je 0x28ad5a72
cmp al, 0x2e
je 0x28ad5a72
cmp al, 0x21
je 0x28ad5a72
cmp al, 0x7e
je 0x28ad5a72
cmp al, 0x2a
je 0x28ad5a72
cmp al, 0x27
je 0x28ad5a72
cmp al, 0x28
je 0x28ad5a72
cmp al, 0x29
je 0x28ad5a72
cmp al, 0x2f
je 0x28ad5a72
cmp al, 0x3b
je 0x28ad5a72
cmp al, 0x40
je 0x28ad5a72
cmp al, 0x26
je 0x28ad5a72
cmp al, 0x3d
je 0x28ad5a72
cmp al, 0x2b
je 0x28ad5a72
cmp al, 0x24
je 0x28ad5a72
cmp al, 0x2c
je 0x28ad5a72
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc edi
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp - 0xc]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
jmp 0x28ad5a7a
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
inc edi
cmp byte [edi], 0
mov dword [ebp - 8], edi
jne 0x28ad59a5
mov eax, dword [ebp + 8]
cmp dword [eax + 0x28], 0
je 0x28ad5b03
lea eax, [esi + 1]
cmp eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
jl 0x28ad5aae
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp + 8]
mov byte [esi + ebx], 0x3f
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
mov esi, dword [ebp - 0xc]
mov dword [ebp - 8], eax
je 0x28ad5c49
lea ecx, [esi + 1]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 4]
jl 0x28ad5aec
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
inc eax
cmp byte [eax], 0
mov dword [ebp - 8], eax
jne 0x28ad5acd
jmp 0x28ad5c49
cmp dword [eax + 0x1c], 0
je 0x28ad5c49
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad5b29
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp + 8]
mov byte [esi + ebx], 0x3f
mov edi, dword [eax + 0x1c]
inc esi
cmp byte [edi], 0
mov dword [ebp - 8], edi
je 0x28ad5c49
lea eax, [esi + 3]
mov dword [ebp - 0xc], eax
jmp 0x28ad5b4b
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jl 0x28ad5b67
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp - 8]
mov ebx, eax
mov al, byte [edi]
cmp al, 0x61
jl 0x28ad5b75
cmp al, 0x7a
jle 0x28ad5c35
cmp al, 0x41
jl 0x28ad5b81
cmp al, 0x5a
jle 0x28ad5c35
cmp al, 0x30
jl 0x28ad5b8d
cmp al, 0x39
jle 0x28ad5c35
cmp al, 0x2d
je 0x28ad5c35
cmp al, 0x5f
je 0x28ad5c35
cmp al, 0x2e
je 0x28ad5c35
cmp al, 0x21
je 0x28ad5c35
cmp al, 0x7e
je 0x28ad5c35
cmp al, 0x2a
je 0x28ad5c35
cmp al, 0x27
je 0x28ad5c35
cmp al, 0x28
je 0x28ad5c35
cmp al, 0x29
je 0x28ad5c35
cmp al, 0x3b
je 0x28ad5c35
cmp al, 0x2f
je 0x28ad5c35
cmp al, 0x3f
je 0x28ad5c35
cmp al, 0x3a
je 0x28ad5c35
cmp al, 0x40
je 0x28ad5c35
cmp al, 0x26
je 0x28ad5c35
cmp al, 0x3d
je 0x28ad5c35
cmp al, 0x2b
je 0x28ad5c35
cmp al, 0x24
je 0x28ad5c35
cmp al, 0x2c
je 0x28ad5c35
cmp al, 0x5b
je 0x28ad5c35
cmp al, 0x5d
je 0x28ad5c35
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc edi
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp - 0xc]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp - 0xc]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
jmp 0x28ad5c3d
mov byte [esi + ebx], al
inc esi
inc dword [ebp - 0xc]
inc edi
cmp byte [edi], 0
mov dword [ebp - 8], edi
jne 0x28ad5b48
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 0
je 0x28ad5d90
lea eax, [esi + 3]
cmp eax, dword [ebp - 4]
jl 0x28ad5c72
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov ebx, eax
mov eax, dword [ebp + 8]
mov byte [esi + ebx], 0x23
mov edi, dword [eax + 0x20]
inc esi
cmp byte [edi], 0
mov dword [ebp - 8], edi
je 0x28ad5d90
lea eax, [esi + 3]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jl 0x28ad5cae
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
je 0x28ad5da3
mov edi, dword [ebp - 8]
mov ebx, eax
mov al, byte [edi]
cmp al, 0x61
jl 0x28ad5cbc
cmp al, 0x7a
jle 0x28ad5d7c
cmp al, 0x41
jl 0x28ad5cc8
cmp al, 0x5a
jle 0x28ad5d7c
cmp al, 0x30
jl 0x28ad5cd4
cmp al, 0x39
jle 0x28ad5d7c
cmp al, 0x2d
je 0x28ad5d7c
cmp al, 0x5f
je 0x28ad5d7c
cmp al, 0x2e
je 0x28ad5d7c
cmp al, 0x21
je 0x28ad5d7c
cmp al, 0x7e
je 0x28ad5d7c
cmp al, 0x2a
je 0x28ad5d7c
cmp al, 0x27
je 0x28ad5d7c
cmp al, 0x28
je 0x28ad5d7c
cmp al, 0x29
je 0x28ad5d7c
cmp al, 0x3b
je 0x28ad5d7c
cmp al, 0x2f
je 0x28ad5d7c
cmp al, 0x3f
je 0x28ad5d7c
cmp al, 0x3a
je 0x28ad5d7c
cmp al, 0x40
je 0x28ad5d7c
cmp al, 0x26
je 0x28ad5d7c
cmp al, 0x3d
je 0x28ad5d7c
cmp al, 0x2b
je 0x28ad5d7c
cmp al, 0x24
je 0x28ad5d7c
cmp al, 0x2c
je 0x28ad5d7c
cmp al, 0x5b
je 0x28ad5d7c
cmp al, 0x5d
je 0x28ad5d7c
movzx eax, al
cdq
push 0x10
pop ecx
idiv ecx
inc edi
mov byte [esi + ebx], 0x25
inc esi
inc dword [ebp + 8]
cmp eax, 9
setle cl
dec cl
and cl, 7
add cl, 0x30
add cl, al
mov byte [esi + ebx], cl
inc esi
inc dword [ebp + 8]
cmp edx, 9
setle al
dec al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + ebx], al
inc esi
inc dword [ebp + 8]
jmp 0x28ad5d84
mov byte [esi + ebx], al
inc esi
inc dword [ebp + 8]
inc edi
cmp byte [edi], 0
mov dword [ebp - 8], edi
jne 0x28ad5c8f
cmp esi, dword [ebp - 4]
jl 0x28ad5db1
push ebx
lea edi, [ebp - 4]
call fcn.28ad53d9
test eax, eax
pop ecx
jne 0x28ad5daf
push ebx
call dword [0x28b8283c]
pop ecx
xor eax, eax
jmp 0x28ad5db7
mov ebx, eax
mov byte [esi + ebx], 0
mov eax, ebx
pop esi
pop ebx
pop edi
leave
ret