Function at 0x1004a090
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, ecx
push ebx
push esi
push edi
mov ecx, dword [eax + 4]
mov edi, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp ecx, 0x23000
jbe 0x1004a24b
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
test eax, eax
je 0x1004a0dc
mov ecx, dword [eax + 0x84]
jmp 0x1004a0de
xor ecx, ecx
mov ebx, dword [ebp + 0xc]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.10097c50
mov edx, dword [esp + 0x24]
mov ecx, dword [edi + 4]
mov dword [esp + 0x14], edx
cmp edx, ecx
jbe 0x1004a104
mov dword [esp + 0x14], ecx
test al, al
je 0x1004a24b
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x1004a11b
mov ecx, dword [ecx + 0x84]
jmp 0x1004a11d
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp bx, ax
jae 0x1004a24b
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx esi, bx
sar eax, 2
cmp esi, eax
jae 0x1004a147
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x1004a149
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov ebx, dword [eax + 0xc]
jne 0x1004a15b
mov ecx, esi
call fcn.10097cc0
mov eax, dword [esi + 0x20]
add eax, ebx
mov dword [esp + 0x34], eax
cmp ebx, eax
ja 0x1004a24b
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x1c]
jae 0x1004a24b
mov edx, dword [esp + 0x14]
test edx, edx
je 0x1004a24b
test eax, eax
je 0x1004a24b
mov ecx, dword [ebp + 8]
lea eax, [ecx + 0xb]
cmp eax, dword [esp + 0x1c]
jae 0x1004a24b
lea eax, [ecx + 0x11]
cmp eax, edx
jae 0x1004a24b
lea eax, [esi + 0xc]
cmp eax, edx
ja 0x1004a24b
mov eax, edx
sub eax, esi
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], eax
jb 0x1004a24b
mov eax, dword [esp + 0x10]
mov ecx, edi
add eax, esi
mov dword [esp + 0x20], eax
call fcn.10095300
lea ecx, [eax + 0x18]
lea eax, [esp + 0x38]
push eax
call fcn.10094400
mov ecx, edi
call fcn.10095300
lea ecx, [eax + 0x3c]
lea eax, [esp + 0x40]
push eax
call fcn.10094400
mov esi, dword [edi + 0x14]
test esi, esi
je 0x1004a207
mov ecx, dword [esi + 0x84]
jmp 0x1004a209
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
dec eax
cmp dword [esp + 0x38], 0
movzx eax, ax
mov dword [esp + 0x2c], eax
jne 0x1004a254
cmp dword [esp + 0x40], 0
jne 0x1004a254
test esi, esi
je 0x1004a234
mov ecx, dword [esi + 0x84]
jmp 0x1004a236
xor ecx, ecx
push eax
call fcn.100955a0
mov eax, dword [eax]
cmp dword [eax + 0x10], 0x23000
jae 0x1004a2d7
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov ecx, edi
call fcn.1004a000
test al, al
jne 0x1004a2d7
test esi, esi
je 0x1004a26e
mov ecx, dword [esi + 0x84]
jmp 0x1004a270
xor ecx, ecx
push dword [esp + 0x2c]
call fcn.100955a0
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
test esi, esi
je 0x1004a28e
mov ecx, dword [esi + 0x84]
jmp 0x1004a290
xor ecx, ecx
push dword [esp + 0x2c]
call fcn.100955a0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test ecx, ecx
je 0x1004a2c2
cmp edx, ecx
jne 0x1004a2c2
add eax, 0xfffdd000
cmp dword [esp + 0x3c], eax
jbe 0x1004a2d7
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, dword [esp + 0x40]
jne 0x1004a2d7
add eax, 0xfffdd000
cmp dword [esp + 0x44], eax
ja 0x1004a24b
mov ecx, edi
call fcn.10095300
lea ecx, [eax + 0x90]
lea eax, [esp + 0x40]
push eax
call fcn.10094400
mov ecx, edi
call fcn.10095300
lea ecx, [eax + 0x48]
lea eax, [esp + 0x38]
push eax
call fcn.10094400
cmp dword [esp + 0x24], 0x140
jb 0x1004a24b
cmp dword [esp + 0x40], ebx
jne 0x1004a40c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add ecx, dword [esp + 0x44]
add eax, 0xfffffec0
mov edx, dword [esp + 0x28]
cmp ecx, eax
ja 0x1004a342
cmp ecx, dword [edx + 4]
jae 0x1004a342
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1004a40c
mov esi, dword [esp + 0x38]
cmp esi, ebx
jbe 0x1004a40c
add eax, esi
cmp eax, dword [esp + 0x34]
jae 0x1004a40c
sub esi, ebx
add esi, dword [esp + 0x18]
lea eax, [esi + 0x1c]
cmp eax, dword [edx + 4]
jae 0x1004a40c
mov ecx, dword [esp + 0x10]
movzx eax, byte [esi + ecx + 0x1b]
shl ax, 8
movzx edx, ax
movzx eax, byte [esi + ecx + 0x1a]
or edx, eax
movzx eax, byte [esi + ecx + 0x19]
shl ax, 8
movzx eax, ax
shl edx, 0x10
or edx, eax
movzx eax, byte [esi + ecx + 0x18]
or edx, eax
movzx eax, byte [esi + ecx + 0x13]
shl ax, 8
movzx ecx, ax
mov eax, dword [esp + 0x10]
movzx eax, byte [esi + eax + 0x12]
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 0x10
movzx eax, byte [esi + eax + 0x11]
shl ax, 8
movzx eax, ax
or ecx, eax
mov eax, dword [esp + 0x10]
movzx esi, byte [esi + eax + 0x10]
mov eax, 0x51eb851f
or esi, ecx
imul ecx, dword [esp + 0x24], 0x32
add esi, edx
mul ecx
mov eax, dword [esp + 0x14]
shr edx, 5
sub eax, edx
cmp esi, eax
ja 0x1004a40c
mov eax, dword [esp + 0x28]
cmp esi, dword [eax + 4]
jae 0x1004a40c
mov eax, dword [esp + 0x10]
add eax, esi
mov dword [esp + 0x20], eax
mov ecx, edi
call fcn.10095300
lea edx, [esp + 0x40]
push edx
lea ecx, [eax + 0xc]
call fcn.10094400
imul ecx, dword [esp + 0x24], 0x35
mov eax, 0x51eb851f
mul ecx
mov ecx, dword [esp + 0x40]
shr edx, 5
cmp ecx, ebx
jbe 0x1004a44b
mov eax, dword [esp + 0x44]
add eax, ecx
cmp eax, dword [esp + 0x34]
ja 0x1004a44b
sub ecx, ebx
cmp edx, ecx
jbe 0x1004a44b
mov edx, ecx
mov ecx, dword [esp + 0x20]
mov eax, ecx
mov ebx, dword [esp + 0x10]
sub eax, ebx
add edx, eax
lea eax, [edx - 7]
cmp eax, dword [esp + 0x1c]
jae 0x1004a24b
lea esi, [ebx - 7]
add esi, edx
xor edi, edi
lea ecx, [ecx]
mov eax, ecx
cmp ecx, esi
jae 0x1004a55d
mov edx, 1
sub edx, ebx
lea ecx, [edx - 1]
add ecx, eax
mov dword [esp + 0x34], ecx
mov cl, byte [eax]
cmp cl, 0x8b
jne 0x1004a4a1
cmp byte [eax + 1], 0xff
jne 0x1004a4a1
cmp byte [eax + 2], 0x55
je 0x1004a571
cmp cl, 0x55
jne 0x1004a4b6
cmp byte [eax + 1], 0x8b
jne 0x1004a4b6
cmp byte [eax + 2], 0xec
je 0x1004a571
cmp cl, 0xcc
jne 0x1004a4cf
cmp byte [eax - 1], 0xc3
je 0x1004a571
cmp byte [eax - 3], 0xc2
je 0x1004a571
cmp cl, 0x83
jne 0x1004a4e4
cmp byte [eax + 1], 0xc4
jne 0x1004a4e4
cmp byte [eax + 3], 0xc3
je 0x1004a571
cmp cl, 0x50
jb 0x1004a4fa
cmp cl, 0x55
ja 0x1004a4fa
cmp byte [eax + 1], 0xff
jne 0x1004a4fa
cmp byte [eax + 2], 0x15
je 0x1004a571
cmp cl, 0x68
jne 0x1004a50b
cmp byte [eax + 5], 0xff
jne 0x1004a50b
cmp byte [eax + 6], 0x15
je 0x1004a571
cmp cl, 0x6a
jne 0x1004a51c
cmp byte [eax + 2], 0xff
jne 0x1004a51c
cmp byte [eax + 3], 0x15
je 0x1004a571
cmp cl, 0x64
jne 0x1004a53f
cmp byte [eax + 1], 0xa1
jne 0x1004a53f
cmp byte [eax + 2], 0
jne 0x1004a53f
cmp byte [eax + 3], 0
jne 0x1004a53f
cmp byte [eax + 4], 0
jne 0x1004a53f
cmp byte [eax + 5], 0
je 0x1004a571
cmp cl, 0xff
jne 0x1004a550
cmp byte [eax + 1], 0x35
jne 0x1004a550
cmp byte [eax + 6], 0xe8
je 0x1004a571
inc eax
cmp eax, esi
jb 0x1004a481
mov ecx, dword [esp + 0x20]
inc edi
cmp di, 1
jb 0x1004a470
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
push dword [ebp + 0x10]
push esi
push eax
sub esp, 0xc
lea eax, [esp + 0x50]
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x40]
push eax
push ecx
mov ecx, ebx
call fcn.1004a5b0
add esp, 0x30
xor ecx, ecx
test al, al
setne cl
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret