Function at 0x100150a0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
push ebp
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x100150b3
xor eax, eax
pop ebp
add esp, 8
ret
push ebx
push esi
push edi
mov ebx, 0x50
push 0x51
mov dword [esp + 0x14], ebx
call dword [0x102d00c8]
mov edi, eax
add esp, 4
test edi, edi
jne 0x100150f3
call fcn.1000aa40
mov esi, eax
call fcn.1000aa80
mov eax, dword [eax]
push str.xmlSaveUri:_out_of_memory_n
push eax
call dword [esi]
add esp, 8
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 8
ret
mov eax, dword [ebp]
xor esi, esi
test eax, eax
je 0x10015160
mov ebp, eax
cmp byte [ebp], 0
je 0x10015157
cmp esi, ebx
jl 0x10015122
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100152bc
mov edi, eax
mov dl, byte [ebp]
mov byte [esi + edi], dl
mov al, byte [ebp + 1]
inc esi
inc ebp
test al, al
jne 0x10015104
cmp esi, ebx
mov dword [esp + 0x10], ebx
jl 0x10015157
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
mov dword [esp + 0x18], ebx
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155cb
mov edi, eax
mov ebp, dword [esp + 0x1c]
mov byte [esi + edi], 0x3a
inc esi
mov eax, dword [ebp + 4]
test eax, eax
je 0x100152fe
mov ebx, eax
cmp byte [ebx], 0
je 0x10015afe
lea ebp, [esi + 3]
lea esp, [esp]
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x100151a4
add eax, eax
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov al, byte [ebx]
cmp al, 0x3b
je 0x100152ea
cmp al, 0x2f
je 0x100152ea
cmp al, 0x3f
je 0x100152ea
cmp al, 0x3a
je 0x100152ea
cmp al, 0x40
je 0x100152ea
cmp al, 0x26
je 0x100152ea
cmp al, 0x3d
je 0x100152ea
cmp al, 0x2b
je 0x100152ea
cmp al, 0x24
je 0x100152ea
cmp al, 0x2c
je 0x100152ea
cmp al, 0x5b
je 0x100152ea
cmp al, 0x5d
je 0x100152ea
cmp al, 0x61
jl 0x10015212
cmp al, 0x7a
jle 0x100152ea
cmp al, 0x41
jl 0x1001521e
cmp al, 0x5a
jle 0x100152ea
cmp al, 0x30
jl 0x1001522a
cmp al, 0x39
jle 0x100152ea
cmp al, 0x2d
je 0x100152ea
cmp al, 0x5f
je 0x100152ea
cmp al, 0x2e
je 0x100152ea
cmp al, 0x21
je 0x100152ea
cmp al, 0x7e
je 0x100152ea
cmp al, 0x2a
je 0x100152ea
cmp al, 0x27
je 0x100152ea
cmp al, 0x28
je 0x100152ea
cmp al, 0x29
je 0x100152ea
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x1001528a
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 0x100152f0
mov dword [esp + 0x10], ebx
call fcn.1000aa40
mov esi, eax
call fcn.1000aa80
mov eax, dword [eax]
push str.xmlSaveUri:_out_of_memory_n
push eax
call dword [esi]
push edi
call dword [0x102d00c0]
add esp, 0xc
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 8
ret
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x10015180
jmp 0x10015afe
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100155f5
lea edx, [esi + 3]
cmp edx, ebx
jl 0x1001532e
add ebx, ebx
lea eax, [ebx + 1]
push eax
push edi
mov dword [esp + 0x18], ebx
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
mov eax, dword [ebp + 0x10]
inc esi
test eax, eax
je 0x1001548d
cmp byte [eax], 0
mov dword [esp + 0x14], eax
je 0x10015463
lea ebp, [esi + 3]
cmp ebp, ebx
jl 0x10015371
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155c7
mov edi, eax
mov eax, dword [esp + 0x14]
mov al, byte [eax]
cmp al, 0x61
jl 0x10015383
cmp al, 0x7a
jle 0x10015440
cmp al, 0x41
jl 0x1001538f
cmp al, 0x5a
jle 0x10015440
cmp al, 0x30
jl 0x1001539b
cmp al, 0x39
jle 0x10015440
cmp al, 0x2d
je 0x10015440
cmp al, 0x5f
je 0x10015440
cmp al, 0x2e
je 0x10015440
cmp al, 0x21
je 0x10015440
cmp al, 0x7e
je 0x10015440
cmp al, 0x2a
je 0x10015440
cmp al, 0x27
je 0x10015440
cmp al, 0x28
je 0x10015440
cmp al, 0x29
je 0x10015440
cmp al, 0x3b
je 0x10015440
cmp al, 0x3a
je 0x10015440
cmp al, 0x26
je 0x10015440
cmp al, 0x3d
je 0x10015440
cmp al, 0x2b
je 0x10015440
cmp al, 0x24
je 0x10015440
cmp al, 0x2c
je 0x10015440
movzx ecx, al
inc dword [esp + 0x14]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ecx, 0x8000000f
jns 0x1001540e
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 0x1001544e
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 0x10015353
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10015488
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
mov dword [esp + 0x18], ebx
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155cb
mov edi, eax
mov byte [esi + edi], 0x40
inc esi
mov ebp, dword [ebp + 0xc]
cmp byte [ebp], 0
je 0x100154c7
cmp esi, ebx
jl 0x100154b4
add ebx, ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155c7
mov edi, eax
mov cl, byte [ebp]
mov byte [esi + edi], cl
mov al, byte [ebp + 1]
inc esi
inc ebp
test al, al
jne 0x10015496
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x10015516
lea ecx, [esi + 0xa]
cmp ecx, ebx
jl 0x100154f7
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
mov dword [esp + 0x18], ebx
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100152c0
mov edi, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x14]
push edx
push 0x101988c4
sub ebx, esi
lea eax, [esi + edi]
push ebx
push eax
call dword [sym.imp.MSVCR120.dll__snprintf]
add esp, 0x10
add esi, eax
mov ebp, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x18]
test ebx, ebx
je 0x100158c9
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
test ecx, ecx
je 0x100157b6
cmp byte [ebx], 0x2f
jne 0x100157b6
mov al, byte [ebx + 1]
cmp al, 0x61
jl 0x10015547
cmp al, 0x7a
jle 0x10015557
cmp al, 0x41
jl 0x100157b6
cmp al, 0x5a
jg 0x100157b6
cmp byte [ebx + 2], 0x3a
jne 0x100157b6
push 0x101988bc
push ecx
call fcn.1000adb0
add esp, 8
test eax, eax
je 0x100157b6
mov ebp, dword [esp + 0x10]
lea eax, [esi + 3]
cmp eax, ebp
jl 0x1001579d
add ebp, ebp
lea ecx, [ebp + 1]
push ecx
push edi
mov dword [esp + 0x18], ebp
call dword [0x102d00cc]
mov edi, eax
add esp, 8
test edi, edi
jne 0x1001579d
call fcn.1000aa40
mov esi, eax
call fcn.1000aa80
mov edx, dword [eax]
push str.xmlSaveUri:_out_of_memory_n
push edx
call dword [esi]
add esp, 8
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 8
ret
mov dword [esp + 0x10], ebx
call fcn.1000aa40
mov esi, eax
call fcn.1000aa80
mov edx, dword [eax]
push str.xmlSaveUri:_out_of_memory_n
push edx
call dword [esi]
push edi
call dword [0x102d00c0]
add esp, 0xc
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 8
ret
mov eax, dword [ebp + 8]
test eax, eax
je 0x10015760
lea ecx, [esi + 3]
cmp ecx, ebx
jl 0x10015625
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
mov dword [esp + 0x18], ebx
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100152c0
mov edi, eax
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
mov eax, dword [ebp + 8]
mov cl, byte [eax]
inc esi
test cl, cl
mov dword [esp + 0x14], eax
je 0x1001551a
lea ebp, [esi + 3]
cmp ebp, ebx
jl 0x10015661
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155c7
mov edi, eax
mov edx, dword [esp + 0x14]
mov al, byte [edx]
cmp al, 0x61
jl 0x10015673
cmp al, 0x7a
jle 0x1001573c
cmp al, 0x41
jl 0x1001567f
cmp al, 0x5a
jle 0x1001573c
cmp al, 0x30
jl 0x1001568b
cmp al, 0x39
jle 0x1001573c
cmp al, 0x2d
je 0x1001573c
cmp al, 0x5f
je 0x1001573c
cmp al, 0x2e
je 0x1001573c
cmp al, 0x21
je 0x1001573c
cmp al, 0x7e
je 0x1001573c
cmp al, 0x2a
je 0x1001573c
cmp al, 0x27
je 0x1001573c
cmp al, 0x28
je 0x1001573c
cmp al, 0x29
je 0x1001573c
cmp al, 0x24
je 0x1001573c
cmp al, 0x2c
je 0x1001573c
cmp al, 0x3b
je 0x1001573c
cmp al, 0x3a
je 0x1001573c
cmp al, 0x40
je 0x1001573c
cmp al, 0x26
je 0x1001573c
cmp al, 0x3d
je 0x1001573c
cmp al, 0x2b
je 0x1001573c
movzx ecx, al
inc dword [esp + 0x14]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ecx, 0x8000000f
jns 0x1001570a
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 0x1001574a
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 0x10015643
mov dword [esp + 0x10], ebx
jmp 0x10015516
cmp dword [ebp], 0
je 0x1001551a
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1001578e
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov byte [esi + edi], 0x2f
inc esi
mov byte [esi + edi], 0x2f
inc esi
jmp 0x1001551a
mov al, byte [ebx]
mov byte [esi + edi], al
mov cl, byte [ebx + 1]
inc esi
inc ebx
mov byte [esi + edi], cl
mov dl, byte [ebx + 1]
inc esi
inc ebx
mov byte [esi + edi], dl
inc esi
inc ebx
jmp 0x100157ba
mov ebp, dword [esp + 0x10]
cmp byte [ebx], 0
je 0x100158cd
lea ebp, [esi + 3]
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x100157ea
add eax, eax
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov al, byte [ebx]
cmp al, 0x61
jl 0x100157f8
cmp al, 0x7a
jle 0x100158ba
cmp al, 0x41
jl 0x10015804
cmp al, 0x5a
jle 0x100158ba
cmp al, 0x30
jl 0x10015810
cmp al, 0x39
jle 0x100158ba
cmp al, 0x2d
je 0x100158ba
cmp al, 0x5f
je 0x100158ba
cmp al, 0x2e
je 0x100158ba
cmp al, 0x21
je 0x100158ba
cmp al, 0x7e
je 0x100158ba
cmp al, 0x2a
je 0x100158ba
cmp al, 0x27
je 0x100158ba
cmp al, 0x28
je 0x100158ba
cmp al, 0x29
je 0x100158ba
cmp al, 0x2f
je 0x100158ba
cmp al, 0x3b
je 0x100158ba
cmp al, 0x40
je 0x100158ba
cmp al, 0x26
je 0x100158ba
cmp al, 0x3d
je 0x100158ba
cmp al, 0x2b
je 0x100158ba
cmp al, 0x24
je 0x100158ba
cmp al, 0x2c
je 0x100158ba
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x10015888
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 0x100158c0
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x100157c6
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x1001598e
lea ebx, [esi + 1]
cmp ebx, ebp
jl 0x10015901
lea eax, [ebp + ebp]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100155cb
mov edi, eax
mov eax, dword [esp + 0x1c]
mov byte [esi + edi], 0x3f
mov ebp, dword [eax + 0x28]
cmp byte [ebp], 0
mov esi, ebx
je 0x10015afe
mov ebx, dword [esp + 0x10]
lea ecx, [esi + 1]
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x14], ebx
jl 0x1001593f
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015960
mov edi, eax
mov al, byte [ebp]
mov edx, dword [esp + 0x14]
mov byte [esi + edi], al
mov al, byte [ebp + 1]
inc esi
inc edx
inc ebp
test al, al
mov dword [esp + 0x14], edx
jne 0x10015923
mov dword [esp + 0x10], ebx
jmp 0x10015afe
mov dword [esp + 0x10], ebx
call fcn.1000aa40
mov esi, eax
call fcn.1000aa80
mov ecx, dword [eax]
push str.xmlSaveUri:_out_of_memory_n
push ecx
call dword [esi]
push edi
call dword [0x102d00c0]
add esp, 0xc
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 8
ret
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x10015afe
lea edx, [esi + 3]
cmp edx, ebp
jl 0x100159be
lea eax, [ebp + ebp]
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100152c0
mov edi, eax
mov ecx, dword [esp + 0x1c]
mov byte [esi + edi], 0x3f
mov ebx, dword [ecx + 0x1c]
mov al, byte [ebx]
inc esi
test al, al
je 0x10015afe
lea ebp, [esi + 3]
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x100159fb
add eax, eax
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov al, byte [ebx]
cmp al, 0x61
jl 0x10015a09
cmp al, 0x7a
jle 0x10015aef
cmp al, 0x41
jl 0x10015a15
cmp al, 0x5a
jle 0x10015aef
cmp al, 0x30
jl 0x10015a21
cmp al, 0x39
jle 0x10015aef
cmp al, 0x2d
je 0x10015aef
cmp al, 0x5f
je 0x10015aef
cmp al, 0x2e
je 0x10015aef
cmp al, 0x21
je 0x10015aef
cmp al, 0x7e
je 0x10015aef
cmp al, 0x2a
je 0x10015aef
cmp al, 0x27
je 0x10015aef
cmp al, 0x28
je 0x10015aef
cmp al, 0x29
je 0x10015aef
cmp al, 0x3b
je 0x10015aef
cmp al, 0x2f
je 0x10015aef
cmp al, 0x3f
je 0x10015aef
cmp al, 0x3a
je 0x10015aef
cmp al, 0x40
je 0x10015aef
cmp al, 0x26
je 0x10015aef
cmp al, 0x3d
je 0x10015aef
cmp al, 0x2b
je 0x10015aef
cmp al, 0x24
je 0x10015aef
cmp al, 0x2c
je 0x10015aef
cmp al, 0x5b
je 0x10015aef
cmp al, 0x5d
je 0x10015aef
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x10015abd
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 0x10015af5
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x100159d7
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x20]
test eax, eax
mov ebp, dword [esp + 0x10]
je 0x10015c77
lea edx, [esi + 3]
cmp edx, ebp
jl 0x10015b36
add ebp, ebp
lea eax, [ebp + 1]
push eax
push edi
mov dword [esp + 0x18], ebp
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov byte [esi + edi], 0x23
mov ebx, dword [ebx + 0x20]
mov al, byte [ebx]
inc esi
test al, al
je 0x10015c77
lea ebp, [esi + 3]
jmp 0x10015b50
mov eax, dword [esp + 0x10]
cmp ebp, eax
jl 0x10015b74
add eax, eax
mov dword [esp + 0x10], eax
inc eax
push eax
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x10015964
mov edi, eax
mov al, byte [ebx]
cmp al, 0x61
jl 0x10015b82
cmp al, 0x7a
jle 0x10015c64
cmp al, 0x41
jl 0x10015b8e
cmp al, 0x5a
jle 0x10015c64
cmp al, 0x30
jl 0x10015b9a
cmp al, 0x39
jle 0x10015c64
cmp al, 0x2d
je 0x10015c64
cmp al, 0x5f
je 0x10015c64
cmp al, 0x2e
je 0x10015c64
cmp al, 0x21
je 0x10015c64
cmp al, 0x7e
je 0x10015c64
cmp al, 0x2a
je 0x10015c64
cmp al, 0x27
je 0x10015c64
cmp al, 0x28
je 0x10015c64
cmp al, 0x29
je 0x10015c64
cmp al, 0x3b
je 0x10015c64
cmp al, 0x2f
je 0x10015c64
cmp al, 0x3f
je 0x10015c64
cmp al, 0x3a
je 0x10015c64
cmp al, 0x40
je 0x10015c64
cmp al, 0x26
je 0x10015c64
cmp al, 0x3d
je 0x10015c64
cmp al, 0x2b
je 0x10015c64
cmp al, 0x24
je 0x10015c64
cmp al, 0x2c
je 0x10015c64
cmp al, 0x5b
je 0x10015c64
cmp al, 0x5d
je 0x10015c64
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
inc ebx
sar eax, 4
and ecx, 0x8000000f
jns 0x10015c32
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 0x10015c6a
mov byte [esi + edi], al
inc esi
inc ebp
inc ebx
cmp byte [ebx], 0
jne 0x10015b50
mov ebp, dword [esp + 0x10]
cmp esi, ebp
jl 0x10015c94
lea edx, [ebp + ebp + 1]
push edx
push edi
call dword [0x102d00cc]
add esp, 8
test eax, eax
je 0x100152c0
mov edi, eax
mov byte [esi + edi], 0
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
add esp, 8
ret