Function at 0x5be6a0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
mov ebp, ecx
push esi
mov esi, dword [esp + 0x48]
mov edx, dword [ebp + 4]
push edi
lea edi, [ebp + 4]
mov ecx, ebx
sub ecx, edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
mov eax, esi
sub eax, ecx
mov ecx, dword [ebp + 0x73f5]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x73f1]
cmp ebx, eax
jne 0x5be6ee
cmp esi, ecx
jne 0x5be6ee
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
mov eax, dword [ebp + 0x73f1]
test eax, eax
jle 0x5be70a
mov eax, dword [ebp + 0x73f5]
mov dword [esp + 0x14], 1
test eax, eax
jg 0x5be712
mov dword [esp + 0x14], 0
mov dword [ebp + 0x73f1], ebx
mov dword [ebp + 0x73f5], esi
cmp word [0x6cf850], 1
jne 0x5be779
mov ebx, dword [esp + 0x44]
push 0
push ebx
mov ecx, ebp
call fcn.005a5730
push esi
push 0
mov ecx, ebp
call fcn.005b7130
fstp dword [ebp + 0xc896]
lea eax, [esp + 0x44]
mov ecx, ebp
push eax
push ebx
mov dword [esp + 0x4c], 0xffffffff
call fcn.005a5730
mov ecx, dword [esp + 0x44]
push ecx
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.005ba6e0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
mov eax, dword [ebp + 0x756f]
test eax, eax
je 0x5be7c8
lea edi, [ebp + 0x1fc]
mov ecx, edi
call fcn.004c9350
lea ecx, [ebp + 0x2d8]
call fcn.00644560
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x6c7010
call fcn.00643d2c
mov edx, dword [ebp + 0x14]
mov ecx, edi
push edx
call fcn.004c92c0
mov eax, dword [0x739a8c]
push eax
call dword [fcn.0065f524]
jmp 0x5bef87
mov eax, dword [ebp + 0x76bb]
test eax, eax
je 0x5beb89
mov ecx, dword [0x739a80]
push ecx
call dword [fcn.0065f524]
test dword [ebp + 0x76bb], 0xffff0000
je 0x5bef87
mov edi, dword [ebp + 4]
mov ecx, ebp
sub ebx, edi
push ebx
call fcn.005b7260
mov ecx, dword [ebp + 0x737d]
mov edi, eax
mov eax, dword [ebp + 8]
mov edx, esi
sub edx, eax
mov eax, dword [ebp + 0x32e]
add edi, ecx
push edx
push eax
mov ecx, ebp
call fcn.005b7130
fsubr qword [ebp + 0x332]
mov eax, dword [ebp + 0x7415]
test eax, eax
fstp qword [esp + 0x48]
je 0x5be99d
mov ecx, dword [ebp + 0x32a]
push 0
sub ecx, edi
push ecx
mov ecx, ebp
call fcn.005b0980
fld qword [esp + 0x48]
fld st(0)
fabs
fcomp qword [0x665ef8]
fnstsw ax
test ah, 0x41
jne 0x5beb66
mov ecx, dword [ebp + 0x32e]
test ecx, ecx
jne 0x5be908
mov eax, dword [ebp + 0x76a3]
cmp eax, 3
jl 0x5be885
cmp eax, 4
jle 0x5beb66
fld st(0)
fadd qword [ebp + 0x4f8]
fstp qword [ebp + 0x4f8]
mov ecx, dword [ebp + 0x32e]
fld st(0)
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x500]
lea eax, [eax + edx*4 + 0x500]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
fld st(0)
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x510]
lea eax, [eax + edx*4 + 0x510]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x518]
lea eax, [eax + edx*4 + 0x518]
fstp qword [eax]
jmp 0x5beb68
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
fld st(0)
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x4f8]
lea eax, [eax + edx*4 + 0x4f8]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
fld st(0)
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x500]
lea eax, [eax + edx*4 + 0x500]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
fld st(0)
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x510]
lea eax, [eax + edx*4 + 0x510]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fadd qword [eax + edx*4 + 0x518]
lea eax, [eax + edx*4 + 0x518]
fstp qword [eax]
jmp 0x5beb68
mov eax, dword [ebp + 0x7419]
test eax, eax
je 0x5beb68
mov ebx, dword [ebp + 0x32a]
fild dword [ebp + 0x7371]
sub edi, ebx
mov dword [esp + 0x44], edi
fild dword [esp + 0x44]
fdiv st(1)
fadd qword [0x662e00]
fmul st(1)
call fcn.00645030
mov dword [ebp + 0x7371], eax
movsx ecx, word [ebp + 0x4d4]
fstp st(0)
cmp eax, ecx
jle 0x5be9ee
add ecx, 3
mov dword [ebp + 0x7371], ecx
jmp 0x5be9fd
cmp eax, 0x14
jg 0x5be9fd
mov dword [ebp + 0x7371], 0x14
push 0
push 0
mov ecx, ebp
call fcn.005b05d0
fld qword [esp + 0x48]
fdiv qword [ebp + 0x332]
fabs
fcomp qword [0x65f9b0]
fnstsw ax
test ah, 0x41
jne 0x5beb68
fld qword [esp + 0x48]
fcomp qword [0x676b50]
fnstsw ax
test ah, 1
je 0x5beabb
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x508]
fmul qword [0x676b48]
lea eax, [eax + edx*4 + 0x508]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x4f8]
fmul qword [0x675768]
lea eax, [eax + edx*4 + 0x4f8]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x510]
fmul qword [0x675768]
lea eax, [eax + edx*4 + 0x510]
jmp 0x5beb48
fld qword [esp + 0x48]
fcomp qword [0x665ef8]
fnstsw ax
test ah, 0x41
jne 0x5beb4a
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x508]
fmul qword [0x675768]
lea eax, [eax + edx*4 + 0x508]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x4f8]
fmul qword [0x676b48]
lea eax, [eax + edx*4 + 0x4f8]
fstp qword [eax]
mov ecx, dword [ebp + 0x32e]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
fld qword [eax + edx*4 + 0x510]
fmul qword [0x676b48]
lea eax, [eax + edx*4 + 0x510]
fstp qword [eax]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x32e]
sub esi, edx
push esi
push ecx
mov ecx, ebp
call fcn.005b7130
fstp qword [ebp + 0x332]
jmp 0x5beb68
fstp st(0)
mov ecx, ebp
call fcn.005bb180
mov edx, dword [ebp]
push 0
push 0
push 0xf
mov ecx, ebp
call dword [edx + 4]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
push esi
push ebx
push edi
call dword [fcn.0065f520]
test eax, eax
je 0x5bed2b
mov eax, dword [ebp + 0x10]
sub eax, 0x10
cmp esi, eax
jl 0x5bed2b
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x6bff08]
sub ecx, edx
cmp ebx, ecx
jge 0x5bed2b
mov edx, dword [esp + 0x44]
mov ecx, ebp
push edx
call fcn.005be490
lea ecx, [ebp + 0x73fd]
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
cmp word [ebp + 0x300], ax
jne 0x5bebea
mov edx, dword [0x739a94]
push edx
call dword [fcn.0065f524]
mov eax, dword [ebp + 0x32a]
test eax, eax
je 0x5bed1f
mov ecx, dword [ebp + 0x7415]
test ecx, ecx
je 0x5becd6
mov ecx, dword [edi]
mov eax, ebx
sub eax, ecx
mov ecx, ebp
push eax
call fcn.005b7260
mov edx, dword [ebp + 0x737d]
mov ecx, dword [ebp + 0x32a]
mov edi, dword [ebp + 0x322]
add eax, edx
sub eax, ecx
mov ecx, ebx
sub ecx, edi
mov dword [esp + 0x44], eax
imul ecx, eax
test ecx, ecx
jle 0x5becab
fild dword [ebp + 0x7371]
fild dword [esp + 0x44]
fdiv st(1)
fadd qword [0x662e00]
fmul st(1)
call fcn.00645030
cmp eax, 0x14
mov dword [ebp + 0x7371], eax
fstp st(0)
jg 0x5bec6b
mov dword [ebp + 0x7371], 0x14
jmp 0x5bec7f
movsx ecx, word [ebp + 0x4d4]
add ecx, 0xa
cmp eax, ecx
jle 0x5bec7f
mov dword [ebp + 0x7371], ecx
push 0
push 1
mov ecx, ebp
call fcn.005b05d0
mov ecx, ebp
call fcn.005bb180
mov edx, dword [ebp]
push 0
push 0
push 0xf
mov ecx, ebp
call dword [edx + 4]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
jge 0x5bed1f
mov edx, dword [ebp + 0x7429]
mov ecx, ebx
sub ecx, edx
imul ecx, eax
test ecx, ecx
jge 0x5bed1f
mov dword [ebp + 0x322], ebx
mov dword [ebp + 0x326], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
test eax, eax
je 0x5bed1f
mov eax, dword [ebp + 0x7419]
test eax, eax
je 0x5bed1f
mov eax, dword [edi]
mov ecx, ebp
sub ebx, eax
push ebx
call fcn.005b7260
mov edx, dword [ebp + 0x737d]
push 1
add eax, edx
mov edx, dword [ebp + 0x32a]
sub edx, eax
mov ecx, ebp
push edx
call fcn.005b0980
mov ecx, ebp
call fcn.005bb180
mov eax, dword [ebp]
push 0
push 0
push 0xf
mov ecx, ebp
call dword [eax + 4]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
mov al, byte [ebp + 0x726a]
lea edi, [ebp + 0x726a]
test al, al
je 0x5bed61
mov cl, byte [ebp + 0x726b]
test cl, cl
je 0x5bed61
cmp byte [ebp + 0x726d], 0x1e
jne 0x5bed61
mov ecx, dword [esp + 0x44]
push esi
push ebx
push ecx
mov ecx, ebp
call fcn.005a0ac0
jmp 0x5bef87
mov ecx, dword [ebp + 0x7415]
test ecx, ecx
je 0x5bee77
mov ecx, dword [ebp + 0xc89e]
test ecx, ecx
jne 0x5bee77
test al, al
je 0x5bee77
xor ecx, ecx
mov cl, byte [ebp + 0x726c]
lea eax, [ecx + ecx*8]
shl eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + ebp]
lea ecx, [eax + edx*4 + 0x4d6]
lea edx, [esp + 0x2c]
push ecx
push edx
call dword [fcn.0065f51c]
mov al, byte [ebp + 0x726b]
test al, al
je 0x5bee5c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x30]
push ecx
push edx
call dword [fcn.0065f520]
test eax, eax
jne 0x5bee5c
mov al, byte [ebp + 0x726d]
test al, al
je 0x5bee32
cmp al, 3
je 0x5bee0e
cmp al, 0x23
jne 0x5bee69
mov eax, dword [0x739aac]
push eax
call dword [fcn.0065f524]
mov word [ebp + 0x300], 1
mov word [ebp + 0x300], 1
jmp 0x5bef87
mov ecx, dword [0x739aac]
push ecx
call dword [fcn.0065f524]
mov word [ebp + 0x300], 1
mov word [ebp + 0x300], 1
jmp 0x5bef87
push 0x11
call dword [fcn.0065f5e8]
test ah, 0xff
je 0x5bee55
mov edx, dword [0x739ab0]
push edx
call dword [fcn.0065f524]
mov byte [ebp + 0x7275], 1
jmp 0x5bedf7
mov eax, dword [0x739ab4]
jmp 0x5bedf0
mov ecx, dword [0x739aac]
push ecx
call dword [fcn.0065f524]
mov word [ebp + 0x300], 1
jmp 0x5bef87
mov eax, dword [ebp + 0x741d]
test eax, eax
je 0x5bf0ab
mov eax, dword [ebp + 0x7429]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x5bf0ab
mov edi, dword [esp + 0x44]
push 7
mov ecx, edi
call fcn.0064442e
mov ecx, dword [ebp + 0x7425]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x7421]
cmp ebx, eax
jne 0x5beec0
cmp esi, ecx
je 0x5beefe
mov eax, dword [ebp + 0x7425]
test eax, eax
je 0x5beefe
mov edx, dword [0x73a950]
mov ecx, dword [0x73a974]
push 1
xor edx, ecx
mov ecx, dword [ebp + 0x742d]
push 0
push edx
mov edx, dword [ebp + 0x7429]
push eax
mov eax, dword [ebp + 0x7421]
push eax
push ecx
push edx
push edi
mov ecx, 0x732bc0
call fcn.00495fa0
mov dword [ebp + 0x7421], ebx
mov dword [ebp + 0x7425], esi
mov eax, dword [0x73a950]
mov edx, dword [0x73a974]
push 1
xor eax, edx
mov edx, dword [ebp + 0x7421]
push 0
mov ecx, esi
push eax
mov eax, dword [ebp + 0x742d]
push ecx
mov ecx, dword [ebp + 0x7429]
push edx
push eax
push ecx
push edi
mov ecx, 0x732bc0
call fcn.00495fa0
mov edx, dword [esp + 0x18]
mov ecx, edi
push edx
call fcn.0064442e
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5bef87
mov edx, dword [ebp + 8]
mov eax, esi
mov edi, dword [esp + 0x44]
sub eax, edx
push eax
mov eax, dword [ebp + 4]
mov ecx, ebx
sub ecx, eax
push ecx
push edi
mov ecx, ebp
call fcn.005b8a60
mov ecx, dword [ebp + 8]
mov edx, esi
sub edx, ecx
mov eax, ebx
push edx
mov edx, dword [ebp + 4]
sub eax, edx
mov ecx, ebp
push eax
push edi
call fcn.005ba6e0
mov eax, dword [ebp + 0x7405]
mov edi, dword [esp + 0x44]
test eax, eax
je 0x5befa7
push edi
mov ecx, ebp
call fcn.005be650
mov dword [ebp + 0x73f9], 1
mov eax, dword [ebp + 0x73f9]
test eax, eax
je 0x5bf542
mov eax, dword [ebp + 0xc]
mov edx, dword [0x6bff08]
sub eax, edx
cmp ebx, eax
jge 0x5bf542
mov ecx, dword [ebp + 0x10]
sub ecx, 0x10
cmp esi, ecx
jge 0x5bf542
push edi
mov ecx, ebp
call fcn.005be490
mov ecx, dword [ebp + 4]
mov edx, ebx
sub edx, ecx
mov dword [ebp + 0x73fd], ebx
push edx
mov ecx, ebp
mov dword [ebp + 0x7401], esi
call fcn.005b7260
mov ecx, dword [ebp + 0x737d]
add eax, ecx
mov ecx, ebp
push eax
call fcn.005aa080
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
sub esi, eax
mov eax, ebx
push 0
sub eax, ecx
push esi
push eax
push edi
mov ecx, ebp
call fcn.005b87c0
push edi
mov ecx, ebp
call fcn.005be490
mov ecx, ebp
call fcn.005aaad0
mov eax, dword [ebp + 0x73f9]
test eax, eax
je 0x5bf059
mov ecx, dword [ebp + 0x73fd]
mov esi, dword [ebp + 4]
sub ecx, esi
push ecx
mov ecx, ebp
call fcn.005b7260
add eax, dword [ebp + 0x737d]
mov dword [ebp + 0x73d9], eax
mov eax, dword [ebp + 0x7405]
test eax, eax
je 0x5bf07d
mov edx, dword [ebp + 0x7409]
mov ecx, ebp
push edx
call fcn.005b7260
add eax, dword [ebp + 0x737d]
mov dword [ebp + 0x73d9], eax
mov eax, dword [ebp + 0x73d9]
test eax, eax
jle 0x5bf5c9
mov ecx, dword [ebp + 0x4b7]
lea edi, [ebp + 0x73b9]
shl eax, 5
mov esi, dword [ecx + 0x1a]
mov ecx, 8
add esi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x5bf5c9
push esi
lea eax, [ebp + 4]
push ebx
push eax
call dword [fcn.0065f520]
test eax, eax
je 0x5bf0ed
mov ecx, dword [ebp + 8]
add ecx, 0x14
cmp esi, ecx
jge 0x5bf0d9
mov edx, dword [ebp + 4]
add edx, 0x14
cmp ebx, edx
jle 0x5bf0ed
mov eax, dword [ebp + 0xc]
sub eax, 0x14
cmp ebx, eax
jge 0x5bf0ed
push 0x7f00
push 0
call dword [fcn.0065f52c]
push eax
call dword [fcn.0065f524]
mov ecx, edi
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov edx, dword [ecx]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x38], edx
xor edx, edx
mov cl, byte [ecx + 0x10]
mov byte [esp + 0x3c], cl
mov ecx, edi
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x10], dl
cmp word [ebp + 0x4bb], ax
jle 0x5bf1af
mov edx, dword [esp + 0x10]
push esi
push ebx
push edx
mov ecx, ebp
call fcn.005a2100
test eax, eax
jge 0x5bf15e
mov eax, dword [esp + 0x10]
movsx ecx, word [ebp + 0x4bb]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5bf136
jmp 0x5bf1af
cmp word [ebp + 0x7270], 0
je 0x5bf17b
call fcn.00643d14
push 0x1de
push 0xc
push 0x1de
jmp 0x5bf18c
call fcn.00643d14
push 0x142
push 0xc
push 0x142
call fcn.00644176
push eax
call dword [fcn.0065f52c]
push eax
call dword [fcn.0065f524]
mov eax, 1
mov word [ebp + 0x300], ax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edi], edx
mov edx, dword [esp + 0x38]
mov dword [edi + 4], eax
mov al, byte [esp + 0x3c]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov byte [edi + 0x10], al
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x5bef87
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push edi
lea edx, [ebp + 0x302]
push ecx
push edx
call dword [fcn.0065f520]
test eax, eax
jne 0x5bf508
mov eax, dword [ebp + 0xc]
mov edx, dword [0x6bff08]
sub eax, edx
cmp ebx, eax
jle 0x5bf219
mov ecx, dword [ebp + 0x10]
sub ecx, 0x10
cmp esi, ecx
jg 0x5bf508
mov eax, dword [ebp + 0xc89e]
test eax, eax
jne 0x5bf3de
mov edx, dword [esp + 0x1c]
push edi
push edx
mov ecx, ebp
call fcn.005c4220
cmp eax, 0xffffffff
jne 0x5bf3de
push 0x7f00
push 0
call dword [fcn.0065f52c]
push eax
call dword [fcn.0065f524]
mov eax, dword [ebp + 0x2d0]
mov ecx, dword [ebp + 0x2d4]
cmp ebx, eax
jne 0x5bf265
cmp esi, ecx
je 0x5bf287
lea ecx, [ebp + 0x1fc]
call fcn.004c9350
mov dword [ebp + 0x2d0], ebx
lea ecx, [ebp + 0x2d8]
mov dword [ebp + 0x2d4], esi
call fcn.00644560
mov eax, dword [ebp + 0x2dc]
test eax, eax
jne 0x5bf369
mov eax, dword [ebp + 0x72f1]
test eax, eax
je 0x5bf369
mov eax, dword [ebp + 0x7341]
test eax, eax
je 0x5bf306
lea eax, [ebp + 0x7331]
lea ecx, [esp + 0x1c]
push eax
push ecx
call dword [fcn.0065f51c]
push esi
lea edx, [esp + 0x20]
push ebx
push edx
call dword [fcn.0065f520]
test eax, eax
je 0x5bf306
lea eax, [ebp + 0x7345]
lea edi, [ebp + 0x2d8]
push eax
push 0x69a8e4
push edi
call fcn.00643d50
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push edi
call fcn.00643edc
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 0x1fc]
call fcn.004c92c0
mov eax, dword [ebp + 0x7305]
test eax, eax
je 0x5bf369
lea edx, [ebp + 0x72f5]
lea eax, [esp + 0x1c]
push edx
push eax
call dword [fcn.0065f51c]
push esi
lea ecx, [esp + 0x20]
push ebx
push ecx
call dword [fcn.0065f520]
test eax, eax
je 0x5bf369
lea edx, [ebp + 0x7309]
lea edi, [ebp + 0x2d8]
push edx
push 0x69a8e4
push edi
call fcn.00643d50
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push edi
call fcn.00643edc
mov eax, dword [ebp + 0x14]
lea ecx, [ebp + 0x1fc]
push eax
call fcn.004c92c0
mov eax, dword [ebp + 0x756f]
test eax, eax
jne 0x5bef4b
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov ecx, esi
mov edx, ebx
sub ecx, edi
sub edx, eax
push ecx
push edx
mov ecx, ebp
call fcn.005aae80
test eax, eax
je 0x5bf3b9
push ecx
lea eax, [ebp + 0x2d8]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00643edc
mov ecx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + 0x1fc]
call fcn.004c92c0
jmp 0x5bef4b
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x6c7010
call fcn.00643d2c
mov edx, dword [ebp + 0x14]
lea ecx, [ebp + 0x1fc]
push edx
call fcn.004c92c0
jmp 0x5bef4b
mov ecx, dword [0x739a98]
push ecx
call dword [fcn.0065f524]
mov eax, dword [ebp + 0xc89e]
test eax, eax
je 0x5bf4db
mov eax, dword [ebp + 0xc8a2]
mov ecx, dword [ebp + 0xc8a6]
cmp ebx, eax
jne 0x5bf40d
cmp esi, ecx
je 0x5bf470
mov eax, dword [ebp + 0xc8a6]
test eax, eax
jle 0x5bf470
mov edx, dword [0x73a974]
mov eax, ebp
push 1
push 0
neg eax
push 7
lea ecx, [ebp + 4]
sbb eax, eax
push edx
and eax, ecx
sub esp, 0x10
mov edx, esp
mov edi, dword [eax]
mov dword [edx], edi
mov edi, dword [eax + 4]
mov dword [edx + 4], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], edi
mov edi, dword [0x6bff08]
mov dword [edx + 0xc], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc8a6]
sub edx, edi
push eax
push edx
push eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x70]
push eax
push ecx
mov ecx, 0x732bc0
call fcn.00496d80
mov dword [ebp + 0xc8a2], ebx
mov eax, ebp
mov dword [ebp + 0xc8a6], esi
mov edx, dword [0x73a974]
push 1
push 0
neg eax
push 7
lea ecx, [ebp + 4]
sbb eax, eax
push edx
and eax, ecx
sub esp, 0x10
mov edx, esp
mov ebx, dword [0x6bff08]
mov edi, dword [eax]
push esi
mov dword [edx], edi
mov edi, dword [eax + 4]
mov dword [edx + 4], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], edi
mov dword [edx + 0xc], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x68]
sub edx, ebx
push edx
push esi
push eax
push ecx
mov ecx, 0x732bc0
call fcn.00496d80
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
mov eax, dword [ebp + 0x73fd]
lea esi, [ebp + 0x73fd]
test eax, eax
jle 0x5bf4f7
mov edx, dword [esp + 0x44]
mov ecx, ebp
push edx
call fcn.005be490
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
lea ecx, [ebp + 0x2d8]
call fcn.00644560
mov eax, dword [ebp + 0x73fd]
lea esi, [ebp + 0x73fd]
test eax, eax
jle 0x5bf52f
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, ebp
call fcn.005be490
xor edx, edx
xor eax, eax
mov dword [esi], edx
mov dword [esi + 4], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
push edi
mov ecx, ebp
call fcn.005be490
mov eax, dword [ebp + 0x73f9]
test eax, eax
je 0x5bf573
mov edx, dword [ebp + 0x73fd]
mov edi, dword [ebp + 4]
sub edx, edi
mov ecx, ebp
push edx
call fcn.005b7260
add eax, dword [ebp + 0x737d]
mov dword [ebp + 0x73d9], eax
mov eax, dword [ebp + 0x7405]
test eax, eax
je 0x5bf597
mov eax, dword [ebp + 0x7409]
mov ecx, ebp
push eax
call fcn.005b7260
add eax, dword [ebp + 0x737d]
mov dword [ebp + 0x73d9], eax
mov eax, dword [ebp + 0x73d9]
test eax, eax
jle 0x5bf5bc
mov ecx, dword [ebp + 0x4b7]
lea edi, [ebp + 0x73b9]
shl eax, 5
mov esi, dword [ecx + 0x1a]
mov ecx, 8
add esi, eax
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x73fd]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x756f]
test eax, eax
je 0x5bf5e7
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
push 0xfffffffffffffff6
push ecx
push ebx
push edx
mov ecx, ebp
call fcn.005a09f0
mov eax, dword [0x732a28]
test eax, eax
je 0x5bf667
mov esi, dword [ebp + 4]
mov eax, ebx
sub eax, esi
mov ecx, ebp
push eax
call fcn.005b7260
test eax, eax
jge 0x5bf607
xor eax, eax
jmp 0x5bf614
mov ecx, dword [ebp + 4]
sub ebx, ecx
mov ecx, ebp
push ebx
call fcn.005b7260
mov ecx, dword [ebp + 0x737d]
mov edx, dword [esp + 0x4c]
add ecx, eax
push ecx
push edx
mov ecx, ebp
call fcn.005aa8f0
mov eax, dword [ebp + 0x14]
mov esi, dword [fcn.0065f498]
push 0
push 5
mov ecx, dword [eax + 0x20]
push 0x13df
push ecx
call esi
mov eax, dword [ebp + 0x7405]
test eax, eax
jne 0x5bf655
mov eax, dword [ebp + 0x73f9]
test eax, eax
je 0x5bf667
mov edx, dword [ebp + 0x14]
push 0
push 6
push 0x13df
mov eax, dword [edx + 0x20]
push eax
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x30
ret 0xc