Function at 0x10002644
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
lea ebp, [esp - 0xd0]
sub esp, 0x150
mov eax, dword [0x1000806c]
xor eax, ebp
mov dword [ebp + 0xcc], eax
push ebx
mov ebx, dword [ebp + 0xdc]
push esi
mov esi, dword [ebp + 0xd8]
push edi
push 0x32
xor eax, eax
pop ecx
lea edi, [ebp - 0x7c]
rep stosd dword es:[edi], eax
test ebx, ebx
jle 0x10002691
cmp byte [esi + eax], 0x30
jae 0x1000268c
movzx ecx, byte [esi + eax]
lea ecx, [ebp + ecx*4 - 0x7c]
inc dword [ecx]
inc eax
cmp eax, ebx
jl 0x1000267c
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + eax*4 - 0x7c]
cmp edx, dword [ebp + 0xe0]
jl 0x100026a5
xor ecx, ecx
inc ecx
inc eax
cmp eax, 0x32
jl 0x10002696
test ecx, ecx
jge 0x100026b7
or eax, 0xffffffff
jmp 0x10002d20
xor edi, edi
xor eax, eax
test ebx, ebx
jle 0x1000278c
cmp byte [esi + eax], 0x16
jne 0x100026ca
inc edi
inc eax
cmp eax, ebx
jl 0x100026c3
test edi, edi
je 0x1000278c
xor edx, edx
xor ecx, ecx
mov al, byte [esi + ecx]
test al, al
jne 0x100026e3
inc edx
cmp al, 2
jne 0x100026e8
inc edx
cmp al, 3
jne 0x100026ed
inc edx
cmp al, 4
jne 0x100026f2
inc edx
cmp al, 0xf
jne 0x100026f7
inc edx
cmp al, 0x10
jne 0x100026fc
inc edx
cmp al, 0x11
jne 0x10002701
inc edx
inc ecx
cmp ecx, ebx
jl 0x100026db
cmp edx, edi
jl 0x100026af
mov eax, edi
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x10002731
mov ecx, eax
xor eax, eax
cmp byte [esi], 0x16
je 0x10002725
inc eax
cmp byte [esi + eax], 0x16
jne 0x1000271e
dec ecx
mov byte [esi + eax], 0x52
mov byte [esi + eax + 1], 0x5a
jne 0x10002717
mov eax, edi
and eax, 0x80000001
jns 0x1000273f
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x1000278c
mov edx, eax
xor eax, eax
cmp byte [esi], 0x16
je 0x10002753
inc eax
cmp byte [esi + eax], 0x16
jne 0x1000274c
mov byte [esi + eax], 0x5a
xor eax, eax
cmp byte [esi], al
je 0x10002785
mov cl, byte [esi + eax]
cmp cl, 2
je 0x10002785
cmp cl, 3
je 0x10002785
cmp cl, 4
je 0x10002785
cmp cl, 0xf
je 0x10002785
cmp cl, 0x10
je 0x10002785
cmp cl, 0x11
je 0x10002785
inc eax
cmp byte [esi + eax], 0
jne 0x1000275d
dec edx
mov byte [esi + eax], 0x52
jne 0x10002745
xor eax, eax
xor ebx, ebx
cmp dword [ebp + 0xdc], eax
jle 0x100028fe
cmp byte [esi + eax], 4
ja 0x100027a3
inc ebx
inc eax
cmp eax, dword [ebp + 0xdc]
jl 0x1000279c
test ebx, ebx
je 0x100028fe
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov byte [ebp + 0x4c], 0x42
mov byte [ebp - 0x34], 0x4a
mov byte [ebp + 0x4d], 0x42
mov byte [ebp - 0x33], 0x42
mov byte [ebp + 0x4e], 0x4a
mov byte [ebp - 0x32], 0x42
mov byte [ebp + 0x4f], 0x4a
mov byte [ebp - 0x31], 0x4a
mov byte [ebp + 0x50], 0x43
mov byte [ebp - 0x30], 0x4b
mov byte [ebp + 0x51], 0x43
mov byte [ebp - 0x2f], 0x43
mov byte [ebp + 0x52], 0x4b
mov byte [ebp - 0x2e], 0x43
mov byte [ebp + 0x53], 0x4b
mov byte [ebp - 0x2d], 0x4b
mov byte [ebp + 0x54], 0x46
mov byte [ebp - 0x2c], 0x4e
mov byte [ebp + 0x55], 0x46
mov byte [ebp - 0x2b], 0x46
mov byte [ebp + 0x56], 0x4e
mov byte [ebp - 0x2a], 0x46
mov byte [ebp + 0x57], 0x4e
mov byte [ebp - 0x29], 0x4e
mov byte [ebp + 0x58], 0x47
mov byte [ebp - 0x28], 0x4f
mov byte [ebp + 0x59], 0x47
mov byte [ebp - 0x27], 0x47
mov byte [ebp + 0x5a], 0x4f
mov byte [ebp - 0x26], 0x47
mov byte [ebp + 0x5b], 0x4f
mov byte [ebp - 0x25], 0x4f
test eax, eax
jle 0x100028b3
mov edi, dword [ebp + 0xdc]
dec edi
mov dword [ebp - 0x80], eax
call fcn.100017ca
and eax, 0x8000000f
jns 0x1000285a
dec eax
or eax, 0xfffffff0
inc eax
xor ecx, ecx
cmp byte [esi], cl
je 0x1000287e
mov dl, byte [esi + ecx]
cmp dl, 1
je 0x1000287e
cmp dl, 2
je 0x1000287e
cmp dl, 3
je 0x1000287e
cmp dl, 4
je 0x1000287e
inc ecx
cmp byte [esi + ecx], 0
jne 0x10002860
mov dl, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], dl
mov ecx, edi
jmp 0x100028a1
mov dl, byte [esi + ecx]
cmp dl, 1
je 0x100028a7
cmp dl, 2
je 0x100028a7
cmp dl, 3
je 0x100028a7
cmp dl, 4
je 0x100028a7
dec ecx
cmp byte [esi + ecx], 0
jne 0x10002889
dec dword [ebp - 0x80]
mov al, byte [ebp + eax - 0x34]
mov byte [esi + ecx], al
jne 0x10002849
and ebx, 0x80000001
jns 0x100028c0
dec ebx
or ebx, 0xfffffffe
inc ebx
je 0x100028fe
call fcn.100017ca
and eax, 0x8000000f
jns 0x100028d3
dec eax
or eax, 0xfffffff0
inc eax
xor ecx, ecx
cmp byte [esi], cl
je 0x100028f7
mov dl, byte [esi + ecx]
cmp dl, 1
je 0x100028f7
cmp dl, 2
je 0x100028f7
cmp dl, 3
je 0x100028f7
cmp dl, 4
je 0x100028f7
inc ecx
cmp byte [esi + ecx], 0
jne 0x100028d9
mov al, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], al
xor ecx, ecx
cmp dword [ebp + 0xdc], ecx
mov dword [ebp - 0x80], ecx
jle 0x10002a46
mov al, byte [esi + ecx]
cmp al, 5
jb 0x1000291d
cmp al, 0xe
ja 0x1000291d
inc dword [ebp - 0x80]
inc ecx
cmp ecx, dword [ebp + 0xdc]
jl 0x1000290f
cmp dword [ebp - 0x80], 0
je 0x10002a46
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
sar eax, 1
mov byte [ebp + 0x4c], 0x42
mov byte [ebp - 0x34], 0x4a
mov byte [ebp + 0x4d], 0x42
mov byte [ebp - 0x33], 0x42
mov byte [ebp + 0x4e], 0x4a
mov byte [ebp - 0x32], 0x42
mov byte [ebp + 0x4f], 0x4a
mov byte [ebp - 0x31], 0x4a
mov byte [ebp + 0x50], 0x43
mov byte [ebp - 0x30], 0x4b
mov byte [ebp + 0x51], 0x43
mov byte [ebp - 0x2f], 0x43
mov byte [ebp + 0x52], 0x4b
mov byte [ebp - 0x2e], 0x43
mov byte [ebp + 0x53], 0x4b
mov byte [ebp - 0x2d], 0x4b
mov byte [ebp + 0x54], 0x46
mov byte [ebp - 0x2c], 0x4e
mov byte [ebp + 0x55], 0x46
mov byte [ebp - 0x2b], 0x46
mov byte [ebp + 0x56], 0x4e
mov byte [ebp - 0x2a], 0x46
mov byte [ebp + 0x57], 0x4e
mov byte [ebp - 0x29], 0x4e
mov byte [ebp + 0x58], 0x47
mov byte [ebp - 0x28], 0x4f
mov byte [ebp + 0x59], 0x47
mov byte [ebp - 0x27], 0x47
mov byte [ebp + 0x5a], 0x4f
mov byte [ebp - 0x26], 0x47
mov byte [ebp + 0x5b], 0x4f
mov byte [ebp - 0x25], 0x4f
test eax, eax
jle 0x10002a0b
mov edi, dword [ebp + 0xdc]
dec edi
mov ebx, eax
call fcn.100017ca
and eax, 0x8000000f
jns 0x100029d6
dec eax
or eax, 0xfffffff0
inc eax
xor ecx, ecx
mov dl, byte [esi + ecx]
cmp dl, 5
jb 0x100029e5
cmp dl, 0xe
jbe 0x100029e8
inc ecx
jmp 0x100029d8
mov dl, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], dl
mov ecx, edi
mov dl, byte [esi + ecx]
cmp dl, 5
jb 0x100029fe
cmp dl, 0xe
jbe 0x10002a01
dec ecx
jmp 0x100029f1
dec ebx
mov al, byte [ebp + eax - 0x34]
mov byte [esi + ecx], al
jne 0x100029c5
mov eax, dword [ebp - 0x80]
and eax, 0x80000001
jns 0x10002a1a
dec eax
or eax, 0xfffffffe
inc eax
je 0x10002a46
call fcn.100017ca
and eax, 0x8000000f
jns 0x10002a2d
dec eax
or eax, 0xfffffff0
inc eax
xor ecx, ecx
mov dl, byte [esi + ecx]
cmp dl, 5
jb 0x10002a3c
cmp dl, 0xe
jbe 0x10002a3f
inc ecx
jmp 0x10002a2f
mov al, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], al
xor ecx, ecx
xor edx, edx
xor edi, edi
cmp dword [ebp + 0xdc], ecx
jle 0x10002ae3
mov bl, 0x15
mov al, byte [esi + ecx]
cmp al, 0x12
jb 0x10002a66
cmp al, 0x14
ja 0x10002a66
inc edx
cmp al, bl
jne 0x10002a6b
inc edi
inc ecx
cmp ecx, dword [ebp + 0xdc]
jl 0x10002a5a
test edi, edi
je 0x10002ae3
cmp edi, edx
jg 0x100026af
mov eax, edi
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x10002aa5
mov ecx, eax
xor eax, eax
cmp byte [esi], bl
je 0x10002a99
inc eax
cmp byte [esi + eax], bl
jne 0x10002a93
dec ecx
mov byte [esi + eax], 0x52
mov byte [esi + eax + 1], 0x5a
jne 0x10002a8d
and edi, 0x80000001
jns 0x10002ab2
dec edi
or edi, 0xfffffffe
inc edi
je 0x10002ae3
xor eax, eax
cmp byte [esi], bl
je 0x10002ac0
inc eax
cmp byte [esi + eax], bl
jne 0x10002aba
mov byte [esi + eax], 0x5a
xor eax, eax
cmp byte [esi], 0x12
je 0x10002adf
mov cl, byte [esi + eax]
cmp cl, 0x13
je 0x10002adf
cmp cl, 0x14
je 0x10002adf
inc eax
cmp byte [esi + eax], 0x12
jne 0x10002acb
mov byte [esi + eax], 0x52
xor ecx, ecx
cmp dword [ebp + 0xdc], ecx
mov dword [ebp - 0x80], ecx
jle 0x10002be5
mov al, byte [esi + ecx]
cmp al, 0x12
jb 0x10002b02
cmp al, 0x14
ja 0x10002b02
inc dword [ebp - 0x80]
inc ecx
cmp ecx, dword [ebp + 0xdc]
jl 0x10002af4
cmp dword [ebp - 0x80], 0
je 0x10002be5
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
sar eax, 1
mov byte [ebp + 0x4c], 0x42
mov byte [ebp - 0x34], 0x4a
mov byte [ebp + 0x4d], 0x42
mov byte [ebp - 0x33], 0x42
mov byte [ebp + 0x4e], 0x4a
mov byte [ebp - 0x32], 0x42
mov byte [ebp + 0x4f], 0x4a
mov byte [ebp - 0x31], 0x4a
mov byte [ebp + 0x50], 0x52
mov byte [ebp - 0x30], 0x5a
test eax, eax
jle 0x10002ba1
mov edi, dword [ebp + 0xdc]
dec edi
mov ebx, eax
call fcn.100017ca
cdq
push 5
pop ecx
idiv ecx
xor eax, eax
cmp byte [esi], 0x12
je 0x10002b78
mov cl, byte [esi + eax]
cmp cl, 0x13
je 0x10002b78
cmp cl, 0x14
je 0x10002b78
inc eax
cmp byte [esi + eax], 0x12
jne 0x10002b64
mov cl, byte [ebp + edx + 0x4c]
mov byte [esi + eax], cl
mov eax, edi
jmp 0x10002b91
mov cl, byte [esi + eax]
cmp cl, 0x13
je 0x10002b97
cmp cl, 0x14
je 0x10002b97
dec eax
cmp byte [esi + eax], 0x12
jne 0x10002b83
dec ebx
mov cl, byte [ebp + edx - 0x34]
mov byte [esi + eax], cl
jne 0x10002b52
mov eax, dword [ebp - 0x80]
and eax, 0x80000001
jns 0x10002bb0
dec eax
or eax, 0xfffffffe
inc eax
je 0x10002be5
call fcn.100017ca
and eax, 0x80000003
jns 0x10002bc3
dec eax
or eax, 0xfffffffc
inc eax
xor ecx, ecx
cmp byte [esi], 0x12
je 0x10002bde
mov dl, byte [esi + ecx]
cmp dl, 0x13
je 0x10002bde
cmp dl, 0x14
je 0x10002bde
inc ecx
cmp byte [esi + ecx], 0x12
jne 0x10002bca
mov al, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], al
xor edi, edi
xor ecx, ecx
cmp dword [ebp + 0xdc], edi
mov dword [ebp - 0x80], edi
jle 0x10002ce8
mov al, byte [esi + ecx]
cmp al, 0xf
jb 0x10002c06
cmp al, 0x11
ja 0x10002c06
inc dword [ebp - 0x80]
inc ecx
cmp ecx, dword [ebp + 0xdc]
jl 0x10002bf8
cmp dword [ebp - 0x80], edi
je 0x10002ce8
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
mov byte [ebp + 0x4c], 0x42
mov byte [ebp - 0x34], 0x4a
mov byte [ebp + 0x4d], 0x42
mov byte [ebp - 0x33], 0x42
mov byte [ebp + 0x4e], 0x4a
mov byte [ebp - 0x32], 0x42
mov byte [ebp + 0x4f], 0x4a
mov byte [ebp - 0x31], 0x4a
mov byte [ebp + 0x50], 0x52
mov byte [ebp - 0x30], 0x5a
jle 0x10002ca4
mov edi, dword [ebp + 0xdc]
dec edi
mov ebx, eax
call fcn.100017ca
cdq
push 5
pop ecx
idiv ecx
xor eax, eax
cmp byte [esi], 0xf
je 0x10002c7b
mov cl, byte [esi + eax]
cmp cl, 0x10
je 0x10002c7b
cmp cl, 0x11
je 0x10002c7b
inc eax
cmp byte [esi + eax], 0xf
jne 0x10002c67
mov cl, byte [ebp + edx + 0x4c]
mov byte [esi + eax], cl
mov eax, edi
jmp 0x10002c94
mov cl, byte [esi + eax]
cmp cl, 0x10
je 0x10002c9a
cmp cl, 0x11
je 0x10002c9a
dec eax
cmp byte [esi + eax], 0xf
jne 0x10002c86
dec ebx
mov cl, byte [ebp + edx - 0x34]
mov byte [esi + eax], cl
jne 0x10002c55
mov eax, dword [ebp - 0x80]
and eax, 0x80000001
jns 0x10002cb3
dec eax
or eax, 0xfffffffe
inc eax
je 0x10002ce8
call fcn.100017ca
and eax, 0x80000003
jns 0x10002cc6
dec eax
or eax, 0xfffffffc
inc eax
xor ecx, ecx
cmp byte [esi], 0xf
je 0x10002ce1
mov dl, byte [esi + ecx]
cmp dl, 0x10
je 0x10002ce1
cmp dl, 0x11
je 0x10002ce1
inc ecx
cmp byte [esi + ecx], 0xf
jne 0x10002ccd
mov al, byte [ebp + eax + 0x4c]
mov byte [esi + ecx], al
xor ecx, ecx
xor edx, edx
cmp dword [ebp + 0xdc], ecx
jle 0x10002d1e
mov al, byte [esi + ecx]
cmp al, 0x30
jae 0x10002d06
xor edx, edx
inc edx
cmp al, 0x30
jae 0x10002d06
mov byte [esi + ecx], 0x90
cmp byte [esi + ecx], 0x90
jne 0x10002d0d
inc edx
test edx, edx
jne 0x100026af
inc ecx
cmp ecx, dword [ebp + 0xdc]
jl 0x10002cf4
xor eax, eax
mov ecx, dword [ebp + 0xcc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10005820
add ebp, 0xd0
leave
ret