Function at 0x142555b
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, ecx
mov byte [ebp - 1], 0
xor al, al
mov byte [ebp - 3], 0
mov byte [ebp - 2], al
push edi
mov ecx, dword [esi + 0xa8]
lea edi, [esi + 0xa0]
mov eax, dword [esi + 0xac]
lea ebx, [esi + 0x9c]
add ecx, 0xffffffff
mov dword [esi + 0xd0], ecx
adc eax, 0xffffffff
mov dword [esi + 0xd4], eax
cmp dword [esi + 0xb8], 2
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jne case.0x1425532.38
push dword [esi + 0xac]
lea eax, [ebp - 1]
push dword [esi + 0xa8]
push eax
push dword [edi]
mov eax, dword [ebx]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov eax, dword [esi + 0xa8]
mov ecx, eax
mov edx, dword [esi + 0xac]
add ecx, 1
mov dword [ebp - 0x10], eax
mov al, byte [ebp - 1]
mov dword [ebp - 0xc], edx
adc edx, 0
and al, 0xf0
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
cmp al, 0x40
jne 0x1425549
nop
push edx
push ecx
lea eax, [ebp - 1]
push eax
push dword [edi]
mov eax, dword [ebx]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov cl, byte [ebp - 1]
mov al, cl
and al, 0xf0
cmp al, 0x40
jne 0x142551e
push dword [esi + 0xac]
lea eax, [ebp - 1]
push dword [esi + 0xa8]
push eax
push dword [edi]
mov eax, dword [ebx]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
add dword [esi + 0xa8], 1
mov ecx, dword [esi + 0xa8]
adc dword [esi + 0xac], eax
mov edx, dword [esi + 0xac]
jmp 0x14254c0
movzx eax, cl
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x1425532.39
movzx eax, byte [eax + 0x1425e80]
jmp dword [eax*4 + 0x1425e78]
add dword [esi + 0xa8], 0xffffffff
adc dword [esi + 0xac], 0xffffffff
jmp case.0x1425532.38
mov eax, dword [ebp - 0x10]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0xc]
mov dword [esi + 0xac], eax
mov ecx, dword [esi + 0xac]
mov eax, dword [esi + 0xa8]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov ebx, edx
push ecx
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 1]
push eax
mov eax, edi
mov dword [ebp - 0xc], ecx
push dword [eax]
mov eax, dword [edx]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov eax, dword [esi + 0xa8]
mov edx, eax
mov ecx, dword [esi + 0xac]
add edx, 1
mov dword [ebp - 0x18], ecx
adc ecx, 0
mov dword [ebp - 0x14], edx
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], ecx
cmp eax, dword [esi + 0xc0]
jne 0x14256be
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xc4]
jne 0x14256be
mov dl, byte [ebp - 1]
cmp dl, 0xf2
je 0x14255e0
cmp dl, 0xf3
jne 0x14256c1
push ecx
push dword [ebp - 0x14]
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x1c]
push dword [eax]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov cl, byte [ebp - 4]
mov dl, byte [ebp - 1]
cmp cl, 0xf0
je 0x142561a
mov al, cl
and al, 0xfe
cmp al, 0x86
je 0x142561a
mov al, cl
and al, 0xf8
cmp al, 0x90
jne 0x1425620
mov byte [esi + 0x91], dl
cmp dl, 0xf3
jne 0x1425640
cmp cl, 0x88
je 0x1425639
cmp cl, 0x89
je 0x1425639
cmp cl, 0xc6
je 0x1425639
cmp cl, 0xc7
jne 0x1425640
mov byte [esi + 0x91], 0xf3
cmp dword [esi + 0xb8], 2
jne 0x14256c1
and cl, 0xf0
cmp cl, 0x40
jne 0x14256c1
push dword [esi + 0xac]
lea eax, [ebp - 4]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
add dword [esi + 0xa8], 1
adc dword [esi + 0xac], eax
lea eax, [ebp - 4]
push dword [esi + 0xac]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
add dword [esi + 0xa8], 0xffffffff
adc dword [esi + 0xac], 0xffffffff
mov dl, byte [ebp - 1]
movzx eax, dl
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x14256d9.39
movzx eax, byte [eax + 0x1425f78]
jmp dword [eax*4 + 0x1425f50]
push dword [ebp - 0xc]
mov ecx, esi
mov word [esi + 0xe], 0
push dword [ebp - 0x10]
mov byte [esi + 0xd], 0
call fcn.01424fe0
add esp, 8
mov byte [esi + 1], dl
jmp 0x1425452
mov dword [esi + 0x6c], 1
push dword [ebp - 0xc]
mov ecx, esi
mov dword [esi + 6], 0
push dword [ebp - 0x10]
mov byte [esi + 5], 0
mov byte [esi + 0xa], 0
call fcn.01424fe0
add esp, 8
mov byte [esi + 2], dl
jmp 0x1425452
mov dword [esi + 0x6c], 2
jmp 0x1425709
mov dword [esi + 0x6c], 3
jmp 0x1425709
mov dword [esi + 0x6c], 4
jmp 0x1425709
mov dword [esi + 0x6c], 5
jmp 0x1425709
mov dword [esi + 0x6c], 6
jmp 0x1425709
push dword [ebp - 0xc]
mov ecx, esi
mov byte [ebp - 2], 1
push dword [ebp - 0x10]
call fcn.01424fe0
add esp, 8
mov byte [esi + 3], dl
jmp 0x1425452
push dword [ebp - 0xc]
mov ecx, esi
mov byte [ebp - 3], 1
push dword [ebp - 0x10]
call fcn.01424fe0
add esp, 8
mov byte [esi + 4], dl
jmp 0x1425452
mov dword [esi + 0xcc], 0
lea edi, [esi + 0xcc]
cmp dl, 0x62
jne 0x1425958
push dword [esi + 0xac]
lea eax, [ebp - 5]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0xac]
add ecx, 1
mov bl, byte [ebp - 5]
adc edx, eax
mov dword [esi + 0xa8], ecx
cmp dword [esi + 0xb8], 2
mov dword [esi + 0xac], edx
je 0x142580c
mov al, bl
and al, 0xc0
cmp al, 0xc0
jne 0x1425941
movzx eax, bl
not eax
and eax, 0xc
cmp al, 0xc
jne 0x1425941
push edx
push ecx
lea eax, [ebp - 6]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
test byte [ebp - 6], 4
je 0x142584d
mov dword [esi + 0xcc], 3
jmp 0x142587d
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 0xfffffffe
mov dword [esi + 0xa8], ecx
adc eax, 0xffffffff
add ecx, 0xfffffffe
mov dword [esi + 0xac], eax
adc eax, 0xffffffff
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], eax
cmp dword [esi + 0xcc], 3
jne 0x1425d56
movzx eax, byte [ebp - 1]
lea edi, [esi + 0x94]
mov byte [esi + 0x92], al
movzx eax, byte [ebp - 5]
mov byte [esi + 0x93], al
push dword [esi + 0xac]
mov eax, dword [esi + 0x9c]
push dword [esi + 0xa8]
push edi
push dword [esi + 0xa0]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 1
mov dword [esi + 0xa8], ecx
adc eax, 0
push eax
mov dword [esi + 0xac], eax
lea eax, [esi + 0x95]
push ecx
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 1
mov dword [esi + 0xa8], ecx
adc eax, 0
cmp dword [esi + 0xb8], 2
mov dword [esi + 0xac], eax
jne 0x1425c25
movzx ecx, byte [esi + 0x93]
jmp 0x1425c0e
add ecx, 0xfffffffe
mov dword [esi + 0xa8], ecx
adc edx, 0xffffffff
mov dword [esi + 0xac], edx
jmp 0x1425d56
cmp dl, 0xc4
jne 0x1425a03
push dword [esi + 0xac]
lea eax, [ebp - 6]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
cmp dword [esi + 0xb8], 2
je 0x14259bc
mov al, byte [ebp - 6]
and al, 0xc0
cmp al, 0xc0
je 0x14259bc
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
add eax, 0xffffffff
mov dword [esi + 0xa8], eax
adc ecx, 0xffffffff
mov dword [esi + 0xac], ecx
jmp 0x14259ce
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
mov dword [edi], 2
add eax, 0xffffffff
mov dword [esi + 0xd0], eax
adc ecx, 0xffffffff
mov dword [esi + 0xd4], ecx
cmp dword [edi], 2
jne 0x1425d56
mov al, byte [ebp - 1]
mov byte [esi + 0x92], al
push dword [esi + 0xac]
push dword [esi + 0xa8]
jmp 0x1425b84
cmp dl, 0xc5
jne 0x1425af8
push dword [esi + 0xac]
lea eax, [ebp - 6]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
cmp dword [esi + 0xb8], 2
mov eax, edi
je 0x1425a75
mov al, byte [ebp - 6]
and al, 0xc0
cmp al, 0xc0
je 0x1425a6f
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 0xffffffff
mov dword [esi + 0xa8], ecx
adc eax, 0xffffffff
mov dword [esi + 0xac], eax
lea eax, [esi + 0xcc]
jmp 0x1425a7b
lea eax, [esi + 0xcc]
mov dword [edi], 1
cmp dword [eax], 1
jne 0x1425d56
mov al, byte [ebp - 1]
lea edi, [esi + 0x93]
mov byte [esi + 0x92], al
push dword [esi + 0xac]
mov eax, dword [esi + 0x9c]
push dword [esi + 0xa8]
push edi
push dword [esi + 0xa0]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 1
mov dword [esi + 0xa8], ecx
adc eax, 0
cmp dword [esi + 0xb8], 2
mov dword [esi + 0xac], eax
jne 0x1425c25
movzx eax, byte [edi]
not eax
sar eax, 5
and al, 4
or al, 0x40
mov byte [esi + 0x68], al
jmp 0x1425c25
cmp dl, 0x8f
jne 0x1425c3b
push dword [esi + 0xac]
lea eax, [ebp - 6]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
test byte [ebp - 6], 0x38
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
je 0x1425b44
mov dword [edi], 4
jmp 0x1425b56
add eax, 0xffffffff
mov dword [esi + 0xa8], eax
adc ecx, 0xffffffff
mov dword [esi + 0xac], ecx
mov edx, eax
mov edi, ecx
add eax, 0xffffffff
mov dword [esi + 0xd0], eax
adc ecx, 0xffffffff
mov dword [esi + 0xd4], ecx
cmp dword [esi + 0xcc], 4
jne 0x1425d56
mov al, byte [ebp - 1]
push edi
mov byte [esi + 0x92], al
push edx
mov eax, dword [esi + 0x9c]
lea ebx, [esi + 0x93]
push ebx
push dword [esi + 0xa0]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
lea edi, [esi + 0x94]
mov eax, dword [esi + 0xac]
add ecx, 1
mov dword [esi + 0xa8], ecx
adc eax, 0
push eax
push ecx
push edi
push dword [esi + 0xa0]
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
mov ecx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
add ecx, 1
mov dword [esi + 0xa8], ecx
adc eax, 0
cmp dword [esi + 0xb8], 2
mov dword [esi + 0xac], eax
jne 0x1425c25
movzx ecx, byte [ebx]
mov al, byte [edi]
not ecx
sar ecx, 5
shr al, 4
and cl, 7
and al, 8
or cl, al
or cl, 0x40
mov byte [esi + 0x68], cl
movzx eax, byte [edi]
and eax, 3
sub eax, 1
jne 0x1425d56
mov dl, 1
jmp 0x1425d59
cmp dword [esi + 0xb8], 2
mov ecx, dword [esi + 0xa8]
jne 0x1425d2c
mov edi, dword [esi + 0xac]
and dl, 0xf0
cmp dl, 0x40
jne 0x1425d06
push edi
push ecx
lea eax, [ebp - 5]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
nop dword [eax + eax]
mov al, byte [ebp - 5]
mov ecx, dword [esi + 0xa8]
and al, 0xf0
mov edi, dword [esi + 0xac]
cmp al, 0x40
jne 0x1425cec
push edi
push ecx
lea eax, [ebp - 1]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
jne 0x1425ce2
add dword [esi + 0xa8], 1
adc dword [esi + 0xac], eax
lea eax, [ebp - 5]
push dword [esi + 0xac]
push dword [esi + 0xa8]
push eax
push dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
call eax
add esp, 0x10
test eax, eax
je 0x1425c80
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 1]
add ecx, 0xfffffffe
mov byte [esi + 0x68], al
adc edi, 0xffffffff
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edi
jmp 0x1425d56
add ecx, 0xffffffff
mov dword [esi + 0xa8], ecx
adc edi, 0xffffffff
add ecx, 0xffffffff
mov dword [esi + 0xac], edi
adc edi, 0xffffffff
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edi
jmp 0x1425d56
mov eax, dword [esi + 0xac]
add ecx, 0xffffffff
mov dword [esi + 0xa8], ecx
adc eax, 0xffffffff
add ecx, 0xffffffff
mov dword [esi + 0xac], eax
adc eax, 0xffffffff
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], eax
mov dl, byte [ebp - 2]
mov eax, dword [esi + 0xb8]
test eax, eax
jne 0x1425da3
test dl, dl
setne cl
cmp byte [ebp - 3], al
setne al
lea eax, [eax*2 + 2]
lea ecx, [ecx*2 + 2]
mov byte [esi + 0xd9], al
mov byte [esi + 0xda], al
xor eax, eax
mov byte [esi + 0xdc], cl
mov byte [esi + 0xdb], cl
mov byte [esi + 0xd8], cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x1425db6
test dl, dl
sete cl
cmp byte [ebp - 3], 0
sete al
jmp 0x1425d6e
cmp eax, 2
jne 0x1425e6e
mov al, byte [esi + 0x68]
test al, al
je 0x1425e2a
test al, 8
je 0x1425dfe
cmp byte [ebp - 3], 0
mov byte [esi + 0xd8], 8
sete al
mov word [esi + 0xda], 0x404
mov byte [esi + 0xdc], 4
lea eax, [eax*4 + 4]
mov byte [esi + 0xd9], al
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test al, al
je 0x1425e2a
test dl, dl
sete cl
cmp byte [ebp - 3], 0
sete al
lea ecx, [ecx*2 + 2]
mov byte [esi + 0xdc], cl
lea eax, [eax*4 + 4]
mov byte [esi + 0xd9], al
jmp 0x1425e5c
test dl, dl
sete cl
cmp byte [ebp - 3], 0
sete al
test dl, dl
lea ecx, [ecx*2 + 2]
lea eax, [eax*4 + 4]
mov byte [esi + 0xd9], al
sete al
lea eax, [eax*4 + 4]
mov byte [esi + 0xdc], al
mov byte [esi + 0xda], cl
mov byte [esi + 0xdb], cl
mov byte [esi + 0xd8], cl
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret