Function at 0x8e23f0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, dword [0xbd9028]
lea eax, [ebp - 0x2c]
mov esi, ecx
push eax
mov ecx, edi
call fcn.00426f51
xor ebx, ebx
xor ecx, ecx
cmp dword [eax + 4], ecx
sete bl
cmp dword [ebp - 0x28], ecx
je 0x8e2424
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00429e8b
test ebx, ebx
je 0x8e245c
lea eax, [esi + 0xccc]
xor edx, edx
mov ecx, eax
cmp byte [ecx], 0
jne 0x8e2448
inc edx
add ecx, 0xc
cmp edx, 8
jl 0x8e2432
push 1
pop eax
jmp 0x8e26aa
push 0x60
push 0
push eax
call fcn.00a70120
add esp, 0xc
xor eax, eax
jmp 0x8e26aa
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
call fcn.00426f51
mov eax, dword [eax + 4]
xor edi, edi
cmp dword [ebp - 0x20], edi
mov dword [ebp - 0x14], eax
je 0x8e2480
push edi
lea ecx, [ebp - 0x24]
call fcn.00429e8b
mov dword [ebp - 0x20], edi
mov eax, dword [0xbde95c]
lea ebx, [esi + 0xccc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], ebx
push dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
call fcn.005ba1c6
mov esi, eax
mov al, byte [esi]
cmp al, 1
mov dword [ebp - 8], edi
je 0x8e2660
jbe 0x8e2650
cmp al, 3
jbe 0x8e24d8
cmp al, 6
jbe 0x8e267b
cmp al, 7
je 0x8e24d8
cmp al, 8
jne 0x8e2650
jmp 0x8e267b
mov ecx, dword [esi + 1]
mov eax, ecx
cdq
mov edi, 0xf4240
idiv edi
cmp eax, 2
mov dword [ebp - 0x1c], eax
jne 0x8e2571
mov eax, ecx
cdq
mov edi, 0x2710
idiv edi
cmp eax, 0xc8
je 0x8e25ab
cmp eax, 0xc9
je 0x8e25ab
cmp eax, 0xca
je 0x8e25ab
cmp eax, 0xcd
je 0x8e25ab
cmp eax, 0xdd
je 0x8e25ab
cmp eax, 0xec
je 0x8e25ab
cmp eax, 0xee
je 0x8e25ab
cmp eax, 0xf5
je 0x8e25ab
cmp eax, 0xd4
je 0x8e25ab
cmp eax, 0xe2
je 0x8e25ab
cmp eax, 0xe3
je 0x8e25ab
cmp eax, 0xd2
je 0x8e25ab
cmp eax, 0xf0
je 0x8e25ab
cmp eax, 0xf1
jne 0x8e264a
cmp dword [ebp - 0x1c], 5
jne 0x8e25ab
push ecx
call fcn.0046d35b
cmp eax, 8
pop ecx
jl 0x8e2592
cmp eax, 0xb
jle 0x8e2594
cmp eax, 0x38
je 0x8e2594
cmp eax, 0x46
je 0x8e2599
xor eax, eax
cmp eax, 9
je 0x8e25ab
push dword [esi + 1]
call fcn.0046d2f7
cmp eax, 6
pop ecx
jne 0x8e264a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2cf]
test eax, eax
je 0x8e25bb
mov eax, dword [eax - 4]
push 1
dec eax
pop ebx
cmp eax, ebx
mov dword [ebp - 0x1c], eax
jl 0x8e261c
mov ecx, dword [ebp - 0x14]
push ebx
push 2
lea eax, [ebp - 0x2c]
push eax
call fcn.004296b0
cmp dword [ebp - 0x28], 0
mov edi, dword [eax + 4]
je 0x8e25ec
push 0
lea ecx, [ebp - 0x2c]
call fcn.00429c97
and dword [ebp - 0x28], 0
test edi, edi
je 0x8e2616
lea ecx, [edi + 0xc]
call fcn.00429944
cmp eax, dword [esi + 1]
jne 0x8e2616
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test eax, eax
jne 0x8e2616
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
add dword [ebp - 8], eax
and dword [ebp - 4], 0
inc ebx
cmp ebx, dword [ebp - 0x1c]
jle 0x8e25c6
mov edi, dword [ebp - 0xc]
push 5
push esi
push edi
call fcn.00a70970
add esp, 0xc
test eax, eax
jne 0x8e2637
mov eax, dword [edi + 8]
cmp eax, dword [ebp - 8]
je 0x8e263b
and dword [ebp - 4], 0
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
jmp 0x8e2692
and dword [ebp - 4], 0
jmp 0x8e263e
cmp byte [ebx], 0
je 0x8e2658
mov dword [ebp - 4], edi
and byte [ebx], 0
and byte [esi], 0
jmp 0x8e2694
mov ecx, dword [0xbd8fec]
push edi
push dword [esi + 1]
push dword [ebp - 0x14]
call fcn.0076eacd
test eax, eax
jle 0x8e2650
cmp dword [esi + 1], edi
je 0x8e2650
push 5
push esi
push ebx
call fcn.00a70970
add esp, 0xc
test eax, eax
je 0x8e268e
mov dword [ebp - 4], edi
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
inc dword [ebp - 0x10]
add ebx, 0xc
cmp dword [ebp - 0x10], 8
mov dword [ebp - 0xc], ebx
jl 0x8e249b
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret