Function at 0x10038830
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp dword [ebp + 8], 0
jne 0x10038842
xor eax, eax
mov esp, ebp
pop ebp
ret
push ebx
push edi
mov ebx, 0x50
push 0x51
mov dword [ebp - 4], ebx
call dword [sym.dspconv.dll_xmlMallocAtomic]
mov edi, eax
add esp, 4
test edi, edi
jne 0x10038879
push str.xmlSaveUri:_out_of_memory_n
push dword [sym.dspconv.dll_xmlGenericErrorContext]
call dword [sym.dspconv.dll_xmlGenericError]
add esp, 8
xor eax, eax
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
push esi
xor esi, esi
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x100388e9
cmp byte [ecx], 0
je 0x100388e4
lea ecx, [ecx]
cmp esi, ebx
jl 0x100388b4
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov al, byte [ecx]
inc ecx
mov byte [esi + edi], al
inc esi
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
jne 0x10038890
cmp esi, ebx
jl 0x100388e4
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edi, eax
mov byte [esi + edi], 0x3a
inc esi
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], 0x37
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x10038a57
cmp byte [ecx], 0
je 0x10039266
lea edx, [esi + 3]
mov dword [ebp - 8], edx
cmp edx, ebx
jl 0x10038937
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov edx, dword [ebp - 8]
mov al, byte [ecx]
cmp al, 0x3b
je 0x10038a3d
cmp al, 0x2f
je 0x10038a3d
cmp al, 0x3f
je 0x10038a3d
cmp al, 0x3a
je 0x10038a3d
cmp al, 0x40
je 0x10038a3d
cmp al, 0x26
je 0x10038a3d
cmp al, 0x3d
je 0x10038a3d
cmp al, 0x2b
je 0x10038a3d
cmp al, 0x24
je 0x10038a3d
cmp al, 0x2c
je 0x10038a3d
cmp al, 0x5b
je 0x10038a3d
cmp al, 0x5d
je 0x10038a3d
cmp al, 0x61
jl 0x100389a5
cmp al, 0x7a
jle 0x10038a3d
cmp al, 0x41
jl 0x100389b1
cmp al, 0x5a
jle 0x10038a3d
cmp al, 0x30
jl 0x100389bd
cmp al, 0x39
jle 0x10038a3d
cmp al, 0x2d
je 0x10038a3d
cmp al, 0x5f
je 0x10038a3d
cmp al, 0x2e
je 0x10038a3d
cmp al, 0x21
je 0x10038a3d
cmp al, 0x7e
je 0x10038a3d
cmp al, 0x2a
je 0x10038a3d
cmp al, 0x27
je 0x10038a3d
cmp al, 0x28
je 0x10038a3d
cmp al, 0x29
je 0x10038a3d
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 0x10], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x10038a00
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp - 8]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 0x10]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x10038a46
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
mov dword [ebp - 8], edx
jne 0x10038910
jmp 0x10039266
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xc], 0
je 0x10038c91
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10038a8b
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp + 8]
mov edi, eax
mov word [esi + edi], 0x2f2f
add esi, 2
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x10038bf8
cmp byte [ecx], 0
je 0x10038bcf
lea edx, [esi + 3]
mov dword [ebp - 0x10], edx
cmp edx, ebx
jl 0x10038ad8
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 8]
mov edi, eax
mov edx, dword [ebp - 0x10]
mov al, byte [ecx]
cmp al, 0x61
jl 0x10038ae6
cmp al, 0x7a
jle 0x10038bba
cmp al, 0x41
jl 0x10038af2
cmp al, 0x5a
jle 0x10038bba
cmp al, 0x30
jl 0x10038afe
cmp al, 0x39
jle 0x10038bba
cmp al, 0x2d
je 0x10038bba
cmp al, 0x5f
je 0x10038bba
cmp al, 0x2e
je 0x10038bba
cmp al, 0x21
je 0x10038bba
cmp al, 0x7e
je 0x10038bba
cmp al, 0x2a
je 0x10038bba
cmp al, 0x27
je 0x10038bba
cmp al, 0x28
je 0x10038bba
cmp al, 0x29
je 0x10038bba
cmp al, 0x3b
je 0x10038bba
cmp al, 0x3a
je 0x10038bba
cmp al, 0x26
je 0x10038bba
cmp al, 0x3d
je 0x10038bba
cmp al, 0x2b
je 0x10038bba
cmp al, 0x24
je 0x10038bba
cmp al, 0x2c
je 0x10038bba
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 8], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x10038b7d
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp - 0x10]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 8]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x10038bc3
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
mov dword [ebp - 0x10], edx
jne 0x10038ab1
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10038bf3
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edi, eax
mov byte [esi + edi], 0x40
inc esi
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
je 0x10038c39
cmp esi, ebx
jl 0x10038c2a
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov al, byte [ecx]
inc ecx
mov byte [esi + edi], al
inc esi
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
jne 0x10038c06
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jle 0x10038e44
lea eax, [esi + 0xa]
cmp eax, ebx
jl 0x10038c6a
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edi, eax
mov eax, dword [ebp + 8]
push dword [eax + 0x14]
mov eax, ebx
sub eax, esi
push 0x1006ef44
push eax
lea eax, [esi + edi]
push eax
call dword [sym.imp.MSVCR120.dll__snprintf]
add esp, 0x10
add esi, eax
mov eax, dword [ebp + 8]
jmp 0x10038e44
cmp dword [ecx + 8], 0
je 0x10038e0b
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10038cc2
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp + 8]
mov edi, eax
mov word [esi + edi], 0x2f2f
add esi, 2
mov ecx, dword [ecx + 8]
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
je 0x10038c89
lea edx, [esi + 3]
mov dword [ebp - 0x10], edx
lea esp, [esp]
cmp edx, ebx
jl 0x10038d07
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 8]
mov edi, eax
mov edx, dword [ebp - 0x10]
mov al, byte [ecx]
cmp al, 0x61
jl 0x10038d15
cmp al, 0x7a
jle 0x10038df1
cmp al, 0x41
jl 0x10038d21
cmp al, 0x5a
jle 0x10038df1
cmp al, 0x30
jl 0x10038d2d
cmp al, 0x39
jle 0x10038df1
cmp al, 0x2d
je 0x10038df1
cmp al, 0x5f
je 0x10038df1
cmp al, 0x2e
je 0x10038df1
cmp al, 0x21
je 0x10038df1
cmp al, 0x7e
je 0x10038df1
cmp al, 0x2a
je 0x10038df1
cmp al, 0x27
je 0x10038df1
cmp al, 0x28
je 0x10038df1
cmp al, 0x29
je 0x10038df1
cmp al, 0x24
je 0x10038df1
cmp al, 0x2c
je 0x10038df1
cmp al, 0x3b
je 0x10038df1
cmp al, 0x3a
je 0x10038df1
cmp al, 0x40
je 0x10038df1
cmp al, 0x26
je 0x10038df1
cmp al, 0x3d
je 0x10038df1
cmp al, 0x2b
je 0x10038df1
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 8], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x10038db4
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp - 0x10]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 8]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x10038dfa
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
mov dword [ebp - 0x10], edx
jne 0x10038ce0
mov eax, dword [ebp + 8]
jmp 0x10038e44
cmp dword [ecx], 0
je 0x10038e42
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10038e34
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edi, eax
mov eax, dword [ebp + 8]
mov word [esi + edi], 0x2f2f
add esi, 2
jmp 0x10038e44
mov eax, ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x1003903c
mov edx, dword [eax]
test edx, edx
je 0x10038f03
cmp byte [ecx], 0x2f
jne 0x10038f03
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
mov al, byte [eax]
cmp al, 0x61
jl 0x10038e75
cmp al, 0x7a
jle 0x10038e85
cmp al, 0x41
jl 0x10038f03
cmp al, 0x5a
jg 0x10038f03
cmp byte [ecx + 2], 0x3a
jne 0x10038f03
push str.file
push edx
call sym.dspconv.dll_xmlStrEqual
add esp, 8
test eax, eax
je 0x10038f00
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10038eda
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
mov edi, eax
add esp, 8
test edi, edi
jne 0x10038eda
push str.xmlSaveUri:_out_of_memory_n
push dword [sym.dspconv.dll_xmlGenericErrorContext]
call dword [sym.dspconv.dll_xmlGenericError]
add esp, 8
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
movzx eax, byte [eax]
mov byte [esi + edi], al
movzx eax, byte [ecx]
mov byte [esi + edi + 1], al
movzx eax, byte [ecx + 1]
mov byte [esi + edi + 2], al
add esi, 3
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x10038f03
mov ecx, dword [ebp - 8]
cmp byte [ecx], 0
je 0x1003903c
lea edx, [esi + 3]
mov dword [ebp - 0x10], edx
cmp edx, ebx
jl 0x10038f39
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 8]
mov edi, eax
mov edx, dword [ebp - 0x10]
mov al, byte [ecx]
cmp al, 0x61
jl 0x10038f47
cmp al, 0x7a
jle 0x10039027
cmp al, 0x41
jl 0x10038f53
cmp al, 0x5a
jle 0x10039027
cmp al, 0x30
jl 0x10038f5f
cmp al, 0x39
jle 0x10039027
cmp al, 0x2d
je 0x10039027
cmp al, 0x5f
je 0x10039027
cmp al, 0x2e
je 0x10039027
cmp al, 0x21
je 0x10039027
cmp al, 0x7e
je 0x10039027
cmp al, 0x2a
je 0x10039027
cmp al, 0x27
je 0x10039027
cmp al, 0x28
je 0x10039027
cmp al, 0x29
je 0x10039027
cmp al, 0x2f
je 0x10039027
cmp al, 0x3b
je 0x10039027
cmp al, 0x40
je 0x10039027
cmp al, 0x26
je 0x10039027
cmp al, 0x3d
je 0x10039027
cmp al, 0x2b
je 0x10039027
cmp al, 0x24
je 0x10039027
cmp al, 0x2c
je 0x10039027
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 8], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x10038fea
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp - 0x10]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 8]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x10039030
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
mov dword [ebp - 0x10], edx
jne 0x10038f12
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
je 0x100390d0
lea eax, [esi + 1]
mov dword [ebp - 0x10], eax
cmp eax, ebx
jl 0x10039076
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, dword [ebp - 0x10]
mov byte [esi + edi], 0x3f
mov esi, eax
mov ecx, dword [edx + 0x28]
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
je 0x10039269
lea eax, [esi + 1]
mov dword [ebp - 0x10], eax
cmp eax, ebx
jl 0x100390b5
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 8]
mov edi, eax
mov al, byte [ecx]
inc ecx
mov byte [esi + edi], al
inc esi
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
mov dword [ebp - 0x10], eax
jne 0x10039091
jmp 0x10039266
cmp dword [edx + 0x1c], 0
je 0x10039269
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10039101
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edx, dword [ebp + 8]
mov edi, eax
mov byte [esi + edi], 0x3f
inc esi
mov ecx, dword [edx + 0x1c]
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
je 0x10039269
lea edx, [esi + 3]
mov dword [ebp - 0x10], edx
jmp 0x10039120
cmp edx, ebx
jl 0x10039147
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 8]
mov edi, eax
mov edx, dword [ebp - 0x10]
mov al, byte [ecx]
cmp al, 0x61
jl 0x10039155
cmp al, 0x7a
jle 0x10039251
cmp al, 0x41
jl 0x10039161
cmp al, 0x5a
jle 0x10039251
cmp al, 0x30
jl 0x1003916d
cmp al, 0x39
jle 0x10039251
cmp al, 0x2d
je 0x10039251
cmp al, 0x5f
je 0x10039251
cmp al, 0x2e
je 0x10039251
cmp al, 0x21
je 0x10039251
cmp al, 0x7e
je 0x10039251
cmp al, 0x2a
je 0x10039251
cmp al, 0x27
je 0x10039251
cmp al, 0x28
je 0x10039251
cmp al, 0x29
je 0x10039251
cmp al, 0x3b
je 0x10039251
cmp al, 0x2f
je 0x10039251
cmp al, 0x3f
je 0x10039251
cmp al, 0x3a
je 0x10039251
cmp al, 0x40
je 0x10039251
cmp al, 0x26
je 0x10039251
cmp al, 0x3d
je 0x10039251
cmp al, 0x2b
je 0x10039251
cmp al, 0x24
je 0x10039251
cmp al, 0x2c
je 0x10039251
cmp al, 0x5b
je 0x10039251
cmp al, 0x5d
je 0x10039251
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 8], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x10039214
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp - 0x10]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 8]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x1003925a
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 8], ecx
cmp byte [ecx], 0
mov dword [ebp - 0x10], edx
jne 0x10039120
mov edx, dword [ebp + 8]
cmp dword [edx + 0x20], 0
je 0x100393fa
lea eax, [esi + 3]
cmp eax, ebx
jl 0x10039297
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov edi, eax
mov eax, dword [ebp + 8]
mov byte [esi + edi], 0x23
inc esi
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
je 0x100393fa
lea edx, [esi + 3]
mov dword [ebp + 8], edx
cmp edx, ebx
jl 0x100392db
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
je 0x10039414
mov ecx, dword [ebp - 0x10]
mov edi, eax
mov edx, dword [ebp + 8]
mov al, byte [ecx]
cmp al, 0x61
jl 0x100392e9
cmp al, 0x7a
jle 0x100393e5
cmp al, 0x41
jl 0x100392f5
cmp al, 0x5a
jle 0x100393e5
cmp al, 0x30
jl 0x10039301
cmp al, 0x39
jle 0x100393e5
cmp al, 0x2d
je 0x100393e5
cmp al, 0x5f
je 0x100393e5
cmp al, 0x2e
je 0x100393e5
cmp al, 0x21
je 0x100393e5
cmp al, 0x7e
je 0x100393e5
cmp al, 0x2a
je 0x100393e5
cmp al, 0x27
je 0x100393e5
cmp al, 0x28
je 0x100393e5
cmp al, 0x29
je 0x100393e5
cmp al, 0x3b
je 0x100393e5
cmp al, 0x2f
je 0x100393e5
cmp al, 0x3f
je 0x100393e5
cmp al, 0x3a
je 0x100393e5
cmp al, 0x40
je 0x100393e5
cmp al, 0x26
je 0x100393e5
cmp al, 0x3d
je 0x100393e5
cmp al, 0x2b
je 0x100393e5
cmp al, 0x24
je 0x100393e5
cmp al, 0x2c
je 0x100393e5
cmp al, 0x5b
je 0x100393e5
cmp al, 0x5d
je 0x100393e5
movzx ebx, al
inc ecx
mov eax, ebx
mov dword [ebp - 0x10], ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
and ebx, reloc.WS2_32.dll_ntohs
jns 0x100393a8
dec ebx
or ebx, 0xfffffff0
inc ebx
mov edx, dword [ebp + 8]
cmp eax, 9
mov ecx, 0x30
mov byte [esi + edi], 0x25
cmovg ecx, dword [ebp - 0xc]
add cl, al
cmp ebx, 9
mov byte [esi + edi + 1], cl
mov eax, 0x30
mov ecx, 0x37
cmovg eax, ecx
mov ecx, dword [ebp - 0x10]
add al, bl
mov ebx, dword [ebp - 4]
mov byte [esi + edi + 2], al
add esi, 3
add edx, 3
jmp 0x100393ee
mov byte [esi + edi], al
inc edx
inc esi
inc ecx
mov dword [ebp - 0x10], ecx
cmp byte [ecx], 0
mov dword [ebp + 8], edx
jne 0x100392b4
cmp esi, ebx
jl 0x1003943a
lea eax, [ebx*2 + 1]
push eax
push edi
call dword [sym.dspconv.dll_xmlRealloc]
add esp, 8
test eax, eax
jne 0x10039438
push str.xmlSaveUri:_out_of_memory_n
push dword [sym.dspconv.dll_xmlGenericErrorContext]
call dword [sym.dspconv.dll_xmlGenericError]
push edi
call dword [sym.dspconv.dll_xmlFree]
add esp, 0xc
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, eax
mov byte [esi + edi], 0
mov eax, edi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret