Function at 0x10097070
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x20
push ebx
push esi
mov ebx, ecx
mov esi, edx
push edi
mov ecx, 0x1010b0ba
mov dword [esp + 0x28], ebx
call fcn.100b18e0
mov edx, ebx
mov dword [esp + 0x18], 0x100fd0e0
xor bh, bh
mov edi, esi
xor al, al
mov byte [esp + 0x14], bh
mov ecx, 0x1c
rep stosb byte es:[edi], al
mov cl, 0x10
mov bl, byte [edx]
inc edx
movzx eax, bl
sub eax, 0x26
cmp eax, 0xcd
ja case.0x100970bc.39
movzx eax, byte [eax + 0x10097628]
jmp dword [eax*4 + 0x1009760c]
mov byte [esi + 1], bl
or bh, 4
jmp 0x100970f1
mov byte [esi + 1], bl
or bh, 2
jmp 0x100970f1
mov byte [esi + 2], bl
or bh, 0x20
jmp 0x100970f1
mov byte [esi + 3], bl
or bh, 0x40
jmp 0x100970f1
mov byte [esi + 4], bl
or bh, 8
jmp 0x100970f1
mov byte [esi + 5], bl
or bh, 0x10
add cl, 0xff
jne 0x100970a5
movzx ecx, bh
mov edi, 1
shl ecx, 0x17
test bh, bh
movzx eax, bh
cmovne edi, eax
mov dword [esi + 0x18], ecx
mov dword [esp + 0x20], edi
mov byte [esi + 6], bl
cmp bl, 0xf
jne 0x1009712c
mov bl, byte [edx]
inc edx
mov bh, byte [esp + 0x20]
mov byte [esi + 7], bl
mov dword [esp + 0x18], 0x100fd12a
jmp 0x10097148
mov eax, dword [esp + 0x20]
mov bh, al
cmp bl, 0xa0
jb 0x10097148
cmp bl, 0xa3
ja 0x10097148
test al, 0x10
je 0x10097145
or bh, 8
jmp 0x10097148
and bh, 0xf7
movzx eax, bl
push ebp
mov ebp, eax
mov dword [esp + 0x24], eax
mov edi, eax
shr ebp, 2
and edi, 0x80000003
jns 0x10097164
dec edi
or edi, 0xfffffffc
inc edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
movzx eax, byte [eax + ebp]
add eax, edi
mov edi, dword [esp + 0x1c]
mov al, byte [eax + edi]
mov dword [esp + 0x1c], eax
cmp al, 0xff
jne 0x100971ad
xor al, al
or ecx, 0x3000
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
and eax, 0xfffffffd
mov dword [esi + 0x18], ecx
cmp eax, 0x24
jne 0x100971a9
mov al, 1
mov byte [esp + 0x20], 0
mov dword [esp + 0x1c], eax
jmp 0x100971cb
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x20], 0
test al, al
jns 0x100971cb
movzx eax, al
and eax, 0x7f
movzx eax, word [eax + edi]
mov dword [esp + 0x1c], eax
shr eax, 8
mov dword [esp + 0x20], eax
mov al, byte [esi + 7]
mov edi, ecx
mov byte [esp + 0x15], al
test al, al
je 0x100971f5
movzx eax, byte [ebp + str.JJJJKRJJJJOLJJJJJJJJUE_JJJEYMFJ_JJJJJJJJJJJJJJacgNJJkmJJEmJJDEJJ]
mov ebp, dword [esp + 0x28]
test byte [eax + ebp + str.JJJJKRJJJJOLJJJJJJJJUE_JJJEYMFJ_JJJJJJJJJJJJJJacgNJJkmJJEmJJDEJJ], bh
je 0x100971f5
or edi, 0x3000
mov dword [esi + 0x18], edi
mov ecx, dword [esp + 0x1c]
test cl, 1
je 0x10097509
or edi, 1
mov dword [esi + 0x18], edi
mov ebp, edi
mov cl, byte [edx]
mov al, cl
mov byte [esi + 8], cl
shr al, 6
mov byte [esp + 0x14], al
mov byte [esi + 9], al
mov al, cl
and al, 7
shr cl, 3
and cl, 7
mov byte [esp + 0x16], al
mov byte [esi + 0xb], al
mov eax, dword [esp + 0x20]
mov byte [esp + 0x13], cl
mov byte [esi + 0xa], cl
test al, al
je 0x1009724d
movzx eax, al
shl eax, cl
test al, al
jns 0x1009724d
or ebp, 0x3000
mov dword [esi + 0x18], ebp
mov ch, byte [esp + 0x15]
mov eax, ebp
test ch, ch
jne 0x1009729f
cmp bl, 0xd9
jb 0x1009729f
cmp bl, 0xdf
ja 0x1009729f
mov al, bl
movzx ecx, cl
add al, 0x27
cmp byte [esp + 0x14], 3
movzx eax, al
jne 0x1009727f
mov ch, byte [ecx + eax*8 + 0x100fd1d8]
mov cl, byte [esp + 0x16]
jmp 0x1009728b
mov al, byte [eax + 0x100fd1d1]
mov byte [esp + 0x17], al
mov ch, al
shl ch, cl
mov eax, ebp
test ch, ch
mov ch, byte [esp + 0x15]
jns 0x1009729f
or eax, 0x3000
mov dword [esi + 0x18], eax
test bh, 0x20
je 0x100972f8
cmp byte [esp + 0x14], 3
jne 0x100972b5
or eax, 0x9000
mov dword [esi + 0x18], eax
jmp 0x100972f8
mov ah, bl
test ch, ch
jne 0x100972ca
and ah, 0xfe
mov edi, 0x100fd299
mov ecx, 0x100fd281
jmp 0x100972d4
mov edi, 0x100fd2ab
mov ecx, 0x100fd299
mov al, byte [ecx]
cmp al, ah
je 0x100972e3
add ecx, 2
cmp ecx, edi
jne 0x100972d4
jmp 0x100972f1
movzx eax, byte [ecx + 1]
mov cl, byte [esp + 0x13]
shl eax, cl
test al, al
jns 0x100972f8
or dword [esi + 0x18], 0x9000
cmp byte [esp + 0x15], 0
mov ecx, dword [esp + 0x24]
je 0x1009734e
lea eax, [ecx - 0x20]
cmp eax, 3
ja case.default.0x1009730b
jmp dword [eax*4 + 0x100976f8]
mov al, byte [esp + 0x13]
mov byte [esp + 0x14], 3
cmp al, 4
ja case.0x100973c7.197
cmp al, 1
jne case.0x100973c7.81
jmp case.0x100973c7.197
mov al, byte [esp + 0x13]
mov byte [esp + 0x14], 3
cmp al, 4
je case.0x100973c7.197
cmp al, 5
jne case.0x100973c7.81
jmp case.0x100973c7.197
mov eax, ecx
sub eax, 0x8c
je 0x100973e8
sub eax, 2
je 0x100973dc
cmp byte [esp + 0x14], 3
mov al, byte [esi + 7]
jne 0x100973b2
test al, al
mov ecx, 0x100fd2e4
mov edi, 0x100fd2ba
mov ebp, 0x100fd2ba
cmovne edi, ecx
mov ecx, 0x100fd2ab
cmovne ecx, ebp
cmp ecx, edi
je case.0x100973c7.81
nop word [eax + eax]
cmp byte [ecx], bl
je 0x1009739d
add ecx, 3
cmp ecx, edi
jne 0x10097390
jmp case.0x100973c7.81
test byte [ecx + 1], bh
je case.0x100973c7.81
movzx eax, byte [ecx + 2]
mov cl, byte [esp + 0x13]
shl eax, cl
test al, al
jns case.0x100973c7.197
jmp case.0x100973c7.81
test al, al
je case.0x100973c7.81
lea eax, [ecx - 0x50]
cmp eax, 0xa7
ja case.0x100973c7.81
movzx eax, byte [eax + 0x10097718]
jmp dword [eax*4 + 0x10097708]
test bh, 9
jne case.0x100973c7.197
jmp case.0x100973c7.81
test bh, 6
jne case.0x100973c7.197
jmp case.0x100973c7.81
mov al, byte [esp + 0x13]
cmp al, 1
je case.0x100973c7.197
cmp al, 5
jmp 0x100973ed
cmp byte [esp + 0x13], 5
jbe case.0x100973c7.81
or dword [esi + 0x18], 0x11000
mov al, byte [edx + 1]
add edx, 2
cmp byte [esp + 0x13], 1
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x17], al
ja 0x1009741d
cmp bl, 0xf6
jne 0x10097415
or cl, 2
jmp 0x1009741d
cmp bl, 0xf7
jne 0x1009741d
or cl, 0x10
mov bl, byte [esp + 0x14]
mov edi, 4
movzx eax, bl
sub eax, 0
je 0x10097450
sub eax, 1
je 0x10097449
sub eax, 1
jne 0x10097479
mov byte [esp + 0x18], 2
test bh, 0x10
jne 0x10097479
mov byte [esp + 0x18], 4
jmp 0x10097479
mov byte [esp + 0x18], 1
jmp 0x10097479
test bh, 0x10
je 0x10097466
cmp byte [esp + 0x16], 6
setne al
sub al, 1
and eax, 0xffffff02
jmp 0x10097475
mov eax, dword [esp + 0x18]
cmp byte [esp + 0x16], 5
movzx eax, al
cmove eax, edi
mov dword [esp + 0x18], eax
cmp bl, 3
je 0x100974c4
cmp byte [esp + 0x16], 4
jne 0x100974c4
test bh, 0x10
jne 0x100974c4
mov bl, byte [esp + 0x17]
inc edx
or dword [esi + 0x18], 2
mov al, bl
shr al, 6
mov byte [esi + 0xd], al
mov al, bl
shr al, 3
and al, 7
mov byte [esi + 0xc], bl
and bl, 7
mov byte [esi + 0xe], al
mov eax, dword [esp + 0x18]
mov byte [esi + 0xf], bl
cmp bl, 5
jne 0x100974c8
test byte [esp + 0x14], 1
movzx eax, al
cmove eax, edi
jmp 0x100974c8
mov eax, dword [esp + 0x18]
movzx edi, al
dec edx
mov eax, edi
sub eax, 1
je 0x100974fc
sub eax, 1
je 0x100974ed
sub eax, 2
jne 0x10097505
or dword [esi + 0x18], 0x80
mov eax, dword [edx]
add edx, edi
mov dword [esi + 0x14], eax
jmp 0x10097517
or dword [esi + 0x18], 0x40
mov ax, word [edx]
add edx, edi
mov word [esi + 0x14], ax
jmp 0x10097517
or dword [esi + 0x18], 0x20
mov al, byte [edx]
mov byte [esi + 0x14], al
add edx, edi
jmp 0x10097517
test bh, 0x20
je 0x10097517
or edi, 0x9000
mov dword [esi + 0x18], edi
pop ebp
test cl, 0x10
je 0x1009756a
and bh, 8
test cl, 0x40
je 0x10097543
test bh, bh
je 0x100975be
or dword [esi + 0x18], 0x108
mov ax, word [edx]
add edx, 2
mov word [esi + 0x10], ax
jmp 0x100975e1
mov eax, dword [esi + 0x18]
test bh, bh
je 0x1009755c
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [edx]
add edx, 2
mov word [esi + 0x10], ax
jmp 0x1009756a
or eax, 0x10
mov dword [esi + 0x18], eax
mov eax, dword [edx]
add edx, 4
mov dword [esi + 0x10], eax
test cl, 4
je 0x100975aa
mov eax, dword [esi + 0x18]
test al, 0x10
je 0x10097585
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [edx]
mov word [esi + 0x14], ax
jmp 0x100975a7
test al, 8
je 0x1009759a
or eax, 0x800
mov dword [esi + 0x18], eax
mov ax, word [edx]
mov word [esi + 0x14], ax
jmp 0x100975a7
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [edx]
mov word [esi + 0x10], ax
add edx, 2
test cl, 2
je 0x100975b9
or dword [esi + 0x18], 4
mov al, byte [edx]
inc edx
mov byte [esi + 0x10], al
test cl, 0x40
je 0x100975cf
or dword [esi + 0x18], 0x110
mov eax, dword [edx]
add edx, 4
mov dword [esi + 0x10], eax
jmp 0x100975e1
test cl, 0x20
je 0x100975e1
or dword [esi + 0x18], 0x104
mov al, byte [edx]
inc edx
mov byte [esi + 0x10], al
sub dl, byte [esp + 0x28]
mov byte [esi], dl
cmp dl, 0xf
jbe 0x10097602
or dword [esi + 0x18], 0x5000
mov al, 0xf
pop edi
mov byte [esi], 0xf
pop esi
movzx eax, al
pop ebx
add esp, 0x20
ret
pop edi
pop esi
movzx eax, dl
pop ebx
add esp, 0x20
ret