Function at 0x14254ab
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.0x1425482.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 0x1425c32
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 0x1425499
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 0x1425c32
mov cl, byte [ebp - 1]
mov al, cl
and al, 0xf0
cmp al, 0x40
jne 0x142546e
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 0x1425c32
add dword [esi + 0xa8], 1
mov ecx, dword [esi + 0xa8]
adc dword [esi + 0xac], eax
mov edx, dword [esi + 0xac]
jmp 0x1425410
movzx eax, cl
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x1425482.39
movzx eax, byte [eax + 0x1425dd0]
jmp dword [eax*4 + 0x1425dc8]
add dword [esi + 0xa8], 0xffffffff
adc dword [esi + 0xac], 0xffffffff
jmp case.0x1425482.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 0x1425c32
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 0x142560e
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xc4]
jne 0x142560e
mov dl, byte [ebp - 1]
cmp dl, 0xf2
je 0x1425530
cmp dl, 0xf3
jne 0x1425611
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 0x1425c32
mov cl, byte [ebp - 4]
mov dl, byte [ebp - 1]
cmp cl, 0xf0
je 0x142556a
mov al, cl
and al, 0xfe
cmp al, 0x86
je 0x142556a
mov al, cl
and al, 0xf8
cmp al, 0x90
jne 0x1425570
mov byte [esi + 0x91], dl
cmp dl, 0xf3
jne 0x1425590
cmp cl, 0x88
je 0x1425589
cmp cl, 0x89
je 0x1425589
cmp cl, 0xc6
je 0x1425589
cmp cl, 0xc7
jne 0x1425590
mov byte [esi + 0x91], 0xf3
cmp dword [esi + 0xb8], 2
jne 0x1425611
and cl, 0xf0
cmp cl, 0x40
jne 0x1425611
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 0x1425c32
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 0x1425c32
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.0x1425629.39
movzx eax, byte [eax + 0x1425ec8]
jmp dword [eax*4 + 0x1425ea0]
push dword [ebp - 0xc]
mov ecx, esi
mov word [esi + 0xe], 0
push dword [ebp - 0x10]
mov byte [esi + 0xd], 0
call fcn.01424f30
add esp, 8
mov byte [esi + 1], dl
jmp 0x14253a2
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.01424f30
add esp, 8
mov byte [esi + 2], dl
jmp 0x14253a2
mov dword [esi + 0x6c], 2
jmp 0x1425659
mov dword [esi + 0x6c], 3
jmp 0x1425659
mov dword [esi + 0x6c], 4
jmp 0x1425659
mov dword [esi + 0x6c], 5
jmp 0x1425659
mov dword [esi + 0x6c], 6
jmp 0x1425659
push dword [ebp - 0xc]
mov ecx, esi
mov byte [ebp - 2], 1
push dword [ebp - 0x10]
call fcn.01424f30
add esp, 8
mov byte [esi + 3], dl
jmp 0x14253a2
push dword [ebp - 0xc]
mov ecx, esi
mov byte [ebp - 3], 1
push dword [ebp - 0x10]
call fcn.01424f30
add esp, 8
mov byte [esi + 4], dl
jmp 0x14253a2
mov dword [esi + 0xcc], 0
lea edi, [esi + 0xcc]
cmp dl, 0x62
jne 0x14258a8
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 0x1425c32
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 0x142575c
mov al, bl
and al, 0xc0
cmp al, 0xc0
jne 0x1425891
movzx eax, bl
not eax
and eax, 0xc
cmp al, 0xc
jne 0x1425891
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 0x1425c32
test byte [ebp - 6], 4
je 0x142579d
mov dword [esi + 0xcc], 3
jmp 0x14257cd
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 0x1425ca6
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 0x1425c32
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 0x1425c32
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 0x1425b75
movzx ecx, byte [esi + 0x93]
jmp 0x1425b5e
add ecx, 0xfffffffe
mov dword [esi + 0xa8], ecx
adc edx, 0xffffffff
mov dword [esi + 0xac], edx
jmp 0x1425ca6
cmp dl, 0xc4
jne 0x1425953
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 0x1425c32
cmp dword [esi + 0xb8], 2
je 0x142590c
mov al, byte [ebp - 6]
and al, 0xc0
cmp al, 0xc0
je 0x142590c
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 0x142591e
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 0x1425ca6
mov al, byte [ebp - 1]
mov byte [esi + 0x92], al
push dword [esi + 0xac]
push dword [esi + 0xa8]
jmp 0x1425ad4
cmp dl, 0xc5
jne 0x1425a48
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 0x1425c32
cmp dword [esi + 0xb8], 2
mov eax, edi
je 0x14259c5
mov al, byte [ebp - 6]
and al, 0xc0
cmp al, 0xc0
je 0x14259bf
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 0x14259cb
lea eax, [esi + 0xcc]
mov dword [edi], 1
cmp dword [eax], 1
jne 0x1425ca6
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 0x1425c32
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 0x1425b75
movzx eax, byte [edi]
not eax
sar eax, 5
and al, 4
or al, 0x40
mov byte [esi + 0x68], al
jmp 0x1425b75
cmp dl, 0x8f
jne 0x1425b8b
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 0x1425c32
test byte [ebp - 6], 0x38
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xac]
je 0x1425a94
mov dword [edi], 4
jmp 0x1425aa6
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 0x1425ca6
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 0x1425c32
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 0x1425c32
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 0x1425b75
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 0x1425ca6
mov dl, 1
jmp 0x1425ca9
cmp dword [esi + 0xb8], 2
mov ecx, dword [esi + 0xa8]
jne 0x1425c7c
mov edi, dword [esi + 0xac]
and dl, 0xf0
cmp dl, 0x40
jne 0x1425c56
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 0x1425c32
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 0x1425c3c
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 0x1425c32
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 0x1425bd0
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 0x1425ca6
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 0x1425ca6
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 0x1425cf3
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 0x1425d06
test dl, dl
sete cl
cmp byte [ebp - 3], 0
sete al
jmp 0x1425cbe
cmp eax, 2
jne 0x1425dbe
mov al, byte [esi + 0x68]
test al, al
je 0x1425d7a
test al, 8
je 0x1425d4e
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 0x1425d7a
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 0x1425dac
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