Function at 0x45de80
Capabilities:
Create thread
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51517b
mov eax, dword fs:[0]
push eax
sub esp, 0x300
push ebx
push esi
push edi
mov eax, dword [0x5566e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [0x5737f4]
xor edi, edi
lea esi, [ebp - 0xdc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xc4], edi
call fcn.004058c0
mov ebx, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 0xfc], 5
mov dword [ebp - 0xf8], edi
mov dword [ebx + 0x298], 1
call fcn.0044b380
lea ecx, [ebp - 0xec]
call fcn.004d1d66
mov dword [ebp - 4], edi
cmp dword [ebx + 0x88], 0x120
mov dword [ebp - 0x8c], edi
ja 0x45df40
cmp dword [ebx + 0x84], 0x160
jbe 0x45df40
push 8
call fcn.004c1f9b
mov esi, eax
add esp, 4
mov dword [ebp - 0x80], esi
cmp esi, edi
mov byte [ebp - 4], 1
je 0x45df74
mov edi, dword [ebx + 0x88]
add edi, edi
jmp 0x45df5d
push 8
call fcn.004c1f9b
mov esi, eax
add esp, 4
mov dword [ebp - 0x80], esi
cmp esi, edi
mov byte [ebp - 4], 2
je 0x45df74
mov edi, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
push 8
call fcn.0047c350
mov dword [esi], vtable.CJpegEncoder.0
xor edi, edi
jmp 0x45df76
xor esi, esi
push 8
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 0
call fcn.004c1f9b
mov esi, eax
add esp, 4
mov dword [ebp - 0x80], esi
cmp esi, edi
mov byte [ebp - 4], 3
je 0x45dfb4
mov edi, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
push 0xd
call fcn.0047c350
mov dword [esi], vtable.CMpeg4Encoder.0
mov eax, esi
jmp 0x45dfb6
xor eax, eax
mov ecx, dword [ebp - 0x68]
fnstcw word [ebp - 0x2e]
mov byte [ebp - 4], 0
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0x68]
mov edx, eax
shl edx, 4
sub edx, eax
movzx eax, word [ebp - 0x2e]
add edx, edx
add edx, edx
mov dword [ebp - 0x84], edx
or eax, 0xc00
push 0x2c
fild dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
lea esi, [ebx + 0xc9c]
push 0
fmul dword [ebx + 0x78]
push esi
fldcw word [ebp - 0x84]
fistp qword [ebp - 0xd4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x7c], eax
fldcw word [ebp - 0x2e]
call fcn.004e9730
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x84]
add esp, 0xc
push ecx
push edx
push 4
mov ebx, esi
call fcn.0047bb60
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x1bc]
push 0
push eax
call fcn.004e9730
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
add esp, 0xc
push ecx
push edx
push 1
lea ebx, [ebp - 0x1bc]
call fcn.0047bb60
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x250]
push 0
push eax
call fcn.004e9730
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
add esp, 0xc
push ecx
push edx
push 1
lea ebx, [ebp - 0x250]
call fcn.0047bb60
add esp, 0xc
mov ecx, ebx
mov dword [ebp - 0x50], ecx
lea edi, [esi + 0xcc8]
lea eax, [ebp - 0x1bc]
mov ecx, 0xb
lea esi, [ebp - 0x1bc]
push 0x2c
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x190]
lea edx, [ebp - 0xac]
lea eax, [ebp - 0xa4]
push 0
push ecx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x64], eax
call fcn.004e9730
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x88]
add esp, 0xc
cmp eax, 0x120
mov dword [ebp - 0xc0], 0xffffffff
ja 0x45e122
mov ecx, dword [ebx + 0x84]
cmp ecx, 0x160
jbe 0x45e122
lea edx, [eax + eax]
push edx
push ecx
push 1
lea ebx, [ebp - 0x190]
call fcn.0047bb60
mov ebx, dword [ebp + 8]
add esp, 0xc
mov eax, 0x160
cmp eax, dword [ebx + 0x84]
sbb eax, eax
and eax, 0x20000
add eax, 0x30000
push eax
mov dword [ebp - 0x98], eax
call fcn.004c1fc6
add esp, 4
mov dword [ebp - 0x34], eax
call fcn.0046cd40
mov edx, dword [ebx + 0x84]
push ebx
lea ecx, [ebx + 0xa0]
push ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebx + 0x88]
push ecx
push edx
mov dword [ebp - 0x94], eax
call fcn.0046d8f0
push 0x48
lea eax, [ebp - 0x2a8]
push 0
push eax
call fcn.004e9730
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
add esp, 0xc
lea edi, [ebp - 0x2ac]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2a8], edx
call fcn.0048c6e0
push 0x64
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.004e9730
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
add esp, 0xc
lea esi, [ebp - 0x224]
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], edx
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x208], 1
call fcn.0048cb80
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x88]
mov dword [ebp - 0x118], eax
add eax, 0x10
push eax
mov dword [ebp - 0x114], ecx
call fcn.004e1009
add esp, 4
test eax, eax
je 0x45e232
lea ecx, [eax + 0xf]
and ecx, 0xfffffff0
cmp ecx, eax
jne 0x45e229
add ecx, 0x10
mov dl, cl
sub dl, al
mov byte [ecx - 1], dl
jmp 0x45e234
xor ecx, ecx
mov eax, dword [0x5737f0]
xor edi, edi
add eax, 0xe4
cmp dword [ebx + 0x7d80], edi
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x90], eax
mov dword [ebx + 0xdbc], edi
mov byte [ebx + 0xdc0], 0
je 0x45e287
cmp dword [ebx + 0x84], 0x160
ja 0x45e27e
cmp dword [ebx + 0x190], edi
jne 0x45e287
cmp dword [ebx + 0x7cf4], 5
jae 0x45e287
mov dword [ebp - 0x58], 1
jmp 0x45e28a
mov dword [ebp - 0x58], edi
mov cl, byte [ebp - 0x58]
push 0x2c
lea edx, [ebp - 0x164]
push edi
push edx
mov byte [ebx + 0x7d84], cl
mov dword [ebp - 0x74], edi
call fcn.004e9730
mov eax, dword [ebx + 0x84]
add esp, 0xc
cmp byte [ebp - 0x58], 0
mov byte [ebp - 0x2d], 0
mov dword [ebp - 0x84], edi
jne 0x45e2e1
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x7cf4]
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x94], ecx
mov dword [ebx + 0x98], edx
jmp 0x45e3ce
cmp eax, 0x160
jbe 0x45e2ee
shr eax, 1
mov byte [ebp - 0x2d], 1
mov dword [ebx + 0x90], eax
mov eax, dword [ebx + 0x88]
cmp eax, 0x120
jbe 0x45e307
shr eax, 1
or byte [ebp - 0x2d], 2
mov dword [ebx + 0x94], eax
mov eax, dword [ebx + 0x7cf4]
cmp eax, 5
jae 0x45e324
mov dword [ebx + 0x98], 6
jmp 0x45e332
cmp eax, 8
jae 0x45e32c
add eax, 2
mov dword [ebx + 0x98], eax
push 8
call fcn.004c1f9b
mov esi, eax
add esp, 4
mov dword [ebp - 0x80], esi
cmp esi, edi
mov byte [ebp - 4], 4
je 0x45e366
mov edi, dword [ebx + 0x94]
mov eax, dword [ebx + 0x90]
push 0xd
call fcn.0047c350
mov dword [esi], vtable.CMpeg4Encoder.0
mov eax, esi
jmp 0x45e368
xor eax, eax
mov byte [ebp - 4], 0
mov ecx, dword [eax + 4]
mov dword [ecx + 0x70], 7
mov edx, dword [eax + 4]
mov dword [edx + 0x74], 0x10
mov dword [ebp - 0x74], eax
mov eax, dword [eax + 4]
mov dword [eax + 0x370], 0x1388
mov ecx, dword [ebx + 0x94]
mov edx, dword [ebx + 0x90]
push ecx
push edx
push 1
lea ebx, [ebp - 0x164]
call fcn.0047bb60
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x94]
imul ecx, dword [eax + 0x90]
mov ebx, dword [ebp + 8]
lea eax, [ecx + ecx*2]
shr eax, 1
add esp, 0xc
mov dword [ebp - 0x84], eax
xor edi, edi
mov esi, dword [ebx + 0x190]
lea eax, [esi + 1]
test eax, eax
mov dword [ebp - 0x80], eax
fild dword [ebp - 0x80]
jge 0x45e3e7
fadd qword [0x540f98]
fld qword [0x521b50]
fmul st(1)
fadd qword [0x540f58]
fdivrp st(1)
call fcn.004ebbf0
cmp eax, edi
mov dword [ebp - 0xcc], eax
jne 0x45e410
mov dword [ebp - 0xcc], 1
mov eax, dword [ebx + 0x7cf0]
cmp eax, 0xa
jge 0x45e427
mov dword [ebp - 0xbc], 0x48bf70
jmp 0x45e451
cmp eax, 0x64
jne 0x45e438
mov dword [ebp - 0xbc], 0x48bca0
jmp 0x45e451
xor ecx, ecx
cmp eax, 0x12c
setne cl
sub ecx, 1
and ecx, 0x48bf70
mov dword [ebp - 0xbc], ecx
cmp dword [ebx + 0x88], 0x120
jbe 0x45e464
mov eax, 1
jmp 0x45e474
mov edx, 0x160
cmp edx, dword [ebx + 0x84]
sbb eax, eax
and eax, 2
mov ecx, dword [ebx + 0xd04]
mov edx, dword [ebx + 0x184]
push ecx
mov ecx, dword [ebx + 0x180]
push edx
mov edx, dword [ebx + 0x17c]
push ecx
mov ecx, dword [ebx + 0x178]
push edx
mov edx, dword [ebx + 0x8c]
push ecx
push esi
push eax
push edx
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_ConfigChannel_enum_VIDEOFORMAT__enum_VIDEORESOLUTION__unsigned_long_int__int__int__int__int__int_]
mov eax, dword [ebx + 0xd04]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_StartChannel_int_]
add esp, 0x24
test eax, eax
jl 0x46062b
xor edi, edi
cmp dword [ebx + 0x7d78], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0xb8], edi
je 0x45e4f9
cmp byte [ebx + 0x80c], 0
je 0x45e4f9
push edi
push edi
push ebx
push 0x45da50
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebx + 0x7cfc], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x94]
mov byte [ebp - 4], 5
call fcn.0046dee0
jmp 0x45e510
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebx + 0xd04]
mov eax, dword [ebp - 0xb0]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [ecx]
push eax
push edi
push edx
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_GetVideo_unsigned_char___enum_COLORFORMAT__unsigned_long_long_unsigned___int64____int__void__]
add esp, 0x14
cmp eax, edi
mov dword [ebp - 0x70], eax
jge 0x45e544
mov dword [ebp - 4], edi
jmp 0x46062b
mov eax, dword [ebx + 0x29c]
test al, 2
je 0x45e557
and eax, 0xfffffffd
mov dword [ebx + 0x29c], eax
mov eax, dword [ebx + 0x29c]
test al, 8
je 0x45e776
and eax, 0xfffffff7
cmp dword [ebp - 0x8c], edi
mov dword [ebx + 0x29c], eax
je 0x45e5d0
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x7c]
cmp dword [ecx - 0xc], edi
jne 0x45e586
mov edi, 1
lea esi, [ebp - 0x2b4]
call fcn.004058c0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc8], ecx
sub ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], eax
sbb eax, dword [ebp - 0xd8]
cmp eax, dword [ebp - 0xf8]
jl 0x45e76c
jg 0x45e5c8
cmp ecx, dword [ebp - 0xfc]
jbe 0x45e76c
test edi, edi
jne 0x45e76c
mov eax, dword [ebx + 0x88]
cmp eax, 0x120
mov edx, dword [ebp - 0x50]
ja 0x45e60e
mov ecx, dword [ebx + 0x84]
cmp ecx, 0x160
jbe 0x45e60e
lea esi, [ebp - 0x190]
push esi
mov ebx, edx
call fcn.0048b4f0
mov ebx, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x170], 1
mov edx, esi
mov esi, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx]
push 0
push esi
mov esi, dword [ebp - 0x34]
push esi
push edx
mov edx, dword [eax + 4]
call edx
mov dword [ebp - 0x28], eax
call fcn.004c2ca4
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45e646
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
push ecx
mov byte [ebp - 4], 6
mov ecx, esp
mov dword [ebp - 0x54], esp
push 0x529b37
call fcn.0041aa20
lea ecx, [ebp - 0xf0]
push ecx
push ebx
call fcn.0044a8b0
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.00404e60
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0xf0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45e6a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x20]
push 0x53d840
push edi
call fcn.004e4a56
mov esi, eax
add esp, 8
test esi, esi
je 0x45e6dc
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
push esi
push ecx
push 1
push edx
call fcn.004e4b83
add esp, 0x10
push esi
call fcn.004e4c83
add esp, 4
cmp dword [ebp - 0x8c], 0
je 0x45e734
call fcn.00477c20
push ecx
mov dword [ebp - 0x28], eax
lea eax, [edi - 0x10]
mov dword [ebp - 0x54], esp
mov esi, esp
push eax
call fcn.00405250
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [ebp - 0x68]
mov byte [ebp - 4], 8
mov eax, dword [eax + 0x7c]
push ecx
sub eax, 0x10
mov dword [ebp - 0x8c], esp
mov esi, esp
push eax
call fcn.00405250
add eax, 0x10
mov dword [esi], eax
mov esi, dword [ebp - 0x28]
add esp, 4
mov byte [ebp - 4], 6
call fcn.00477f50
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc4]
lea eax, [edi - 0x10]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], edx
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45e76c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 0x8c], 0
mov eax, dword [ebx + 0x29c]
test al, al
jns 0x45e7db
and eax, 0xffffff7f
cmp byte [ebx + 0x295], 0
mov dword [ebx + 0x29c], eax
mov dword [ebp - 0xb8], 0
je 0x45e7d4
mov esi, dword [ebx + 0x7d38]
test esi, esi
je 0x45e7cd
call fcn.0047cc10
mov eax, dword [ebx + 0x7d38]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, ebx
mov dword [ebx + 0x7d38], 0
call fcn.0044a030
mov byte [ebx + 0x295], 0
mov esi, ebx
call fcn.0044b380
mov eax, dword [ebx + 0x29c]
test al, 0x40
je 0x45e834
and eax, 0xffffffbf
cmp byte [ebx + 0x294], 0
mov dword [ebx + 0x29c], eax
je 0x45e82d
mov esi, dword [ebx + 0x7d34]
test esi, esi
je 0x45e826
call fcn.0047cc10
mov eax, dword [ebx + 0x7d34]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, ebx
mov dword [ebx + 0x7d34], 0
call fcn.0044a030
mov byte [ebx + 0x294], 0
mov esi, ebx
call fcn.0044b380
mov eax, dword [ebx + 0x29c]
test al, 0x20
je 0x45e971
and eax, 0xffffffdf
cmp byte [ebx + 0x295], 0
mov dword [ebx + 0x29c], eax
mov dword [ebp - 0xb8], 1
jne 0x45e95c
mov esi, dword [ebx + 0x7d38]
test esi, esi
je 0x45e891
call fcn.0047cc10
mov eax, dword [ebx + 0x7d38]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, ebx
mov dword [ebx + 0x7d38], 0
call fcn.0044a030
push 0x2050
call fcn.004c1f9b
mov ecx, dword [ebx + 0x7cf4]
mov edx, dword [ebx + 0x190]
add esp, 4
push ecx
mov ecx, dword [ebx + 0x88]
add edx, 1
push edx
mov edx, dword [ebx + 0x84]
mov edi, eax
mov eax, dword [ebx + 0xd34]
push eax
push 0
push ecx
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.alarm_
mov dword [ebx + 0x7d38], edi
call fcn.0041aa20
push ebx
lea ecx, [ebp - 0xf4]
call fcn.0044a2c0
mov esi, eax
mov byte [ebp - 4], 9
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x45e906
mov eax, dword [eax + 4]
push eax
mov ecx, esi
call fcn.00405430
mov esi, dword [esi]
push esi
mov esi, edi
call fcn.0047cb40
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0xf4]
add eax, 0xfffffff0
add esp, 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45e939
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov edi, 1
mov esi, ebx
mov dword [ebx + 0xdbc], edi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x58], eax
mov byte [ebx + 0x295], 1
call fcn.0044b380
jmp 0x45e976
mov esi, ebx
mov dword [ebp - 0x78], 0
mov edi, 1
call fcn.0044b380
jmp 0x45e976
mov edi, 1
mov eax, dword [ebx + 0x29c]
test al, 0x10
je 0x45eb7b
and eax, 0xffffffef
cmp byte [ebx + 0x294], 0
mov dword [ebx + 0x29c], eax
jne 0x45eb74
lea esi, [ebp - 0xd4]
call fcn.004058c0
mov ecx, esi
push ecx
lea edx, [ebp - 0x2e8]
push edx
call fcn.004e1b1c
add esp, 8
test eax, eax
jne 0x45e9c3
mov edi, dword [ebp - 0x2e4]
jmp 0x45e9c6
or edi, 0xffffffff
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x30c]
push ecx
call fcn.004e1b1c
add esp, 8
test eax, eax
jne 0x45ea48
cmp dword [ebp - 0x304], 0x17
jne 0x45ea48
mov edx, dword [ebp - 0x68]
mov eax, dword [edx + 0x68]
mov esi, 0x3c
sub esi, edi
cmp eax, esi
jle 0x45ea17
lea ecx, [ebp - 0xd4]
call fcn.00422cd0
mov ecx, esi
shl ecx, 4
sub ecx, esi
add ecx, ecx
add ecx, ecx
sub ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x45ea25
mov edx, eax
shl edx, 4
sub edx, eax
add edx, edx
add edx, edx
mov dword [ebp - 0x20], edx
fld dword [ebx + 0x78]
fimul dword [ebp - 0x20]
fnstcw word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
or eax, 0xc00
mov dword [ebp - 0x28], eax
fldcw word [ebp - 0x28]
fistp qword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
fldcw word [ebp - 0x16]
jmp 0x45ea7d
mov ecx, dword [ebp - 0x68]
fnstcw word [ebp - 0x16]
mov eax, dword [ecx + 0x68]
mov edx, eax
shl edx, 4
sub edx, eax
movzx eax, word [ebp - 0x16]
add edx, edx
add edx, edx
mov dword [ebp - 0x28], edx
or eax, 0xc00
fild dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
fmul dword [ebx + 0x78]
fldcw word [ebp - 0x28]
fistp qword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
fldcw word [ebp - 0x16]
mov esi, dword [ebx + 0x7d34]
test esi, esi
mov dword [ebp - 0x7c], eax
je 0x45eaaf
call fcn.0047cc10
mov eax, dword [ebx + 0x7d34]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, ebx
mov dword [ebx + 0x7d34], 0
call fcn.0044a030
push 0x2050
call fcn.004c1f9b
mov ecx, dword [ebx + 0x7cf4]
mov edx, dword [ebx + 0x190]
add esp, 4
push ecx
mov ecx, dword [ebx + 0x88]
add edx, 1
push edx
mov edx, dword [ebx + 0x84]
mov edi, eax
mov eax, dword [ebx + 0xd34]
push eax
push 0
push ecx
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x529b37
mov dword [ebx + 0x7d34], edi
call fcn.0041aa20
push ebx
lea ecx, [ebp - 0x100]
call fcn.0044a2c0
mov esi, eax
mov byte [ebp - 4], 0xa
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x45eb24
mov eax, dword [eax + 4]
push eax
mov ecx, esi
call fcn.00405430
mov esi, dword [esi]
push esi
mov esi, edi
call fcn.0047cb40
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x100]
add eax, 0xfffffff0
add esp, 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45eb57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebx + 0xdbc], 1
mov dword [ebp - 0x6c], 0
mov byte [ebx + 0x294], 1
mov edi, 1
mov esi, ebx
call fcn.0044b380
cmp dword [ebx + 0x7d7c], 0
je 0x45ebe4
cmp dword [ebp - 0xb8], 0
je 0x45ebd6
mov edx, dword [ebp - 0xc0]
lea ecx, [ebp - 0xb4]
push ecx
push edx
mov dword [ebp - 0xb4], edi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [ebp - 0xb4], edi
jne 0x45ebe4
push 0
push 0
push 0
push 0x4624e0
push 0
push 0
mov dword [ebp - 0xb4], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xc0], eax
jmp 0x45ebe4
push edi
push 0
push 0x529b37
call dword [sym.imp.WINMM.dll_PlaySoundA]
cmp dword [ebp - 0x70], edi
jne 0x45ec01
mov edx, dword [ebp - 0x94]
lea ecx, [ebx + 0xa0]
call fcn.0046dee0
xor edi, edi
jmp 0x45e510
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
add dword [ebp - 0x5c], edi
cmp dword [ebx + 0x7c], 0x160
mov ecx, dword [ecx + 8]
mov dword [ebx + 0xcc8], eax
mov dword [ebx + 0xccc], edx
mov dword [ebx + 0xcd0], ecx
jbe 0x45ec76
mov edx, dword [ebx + 0x84]
add edx, edx
add edx, edx
add edx, edx
push edx
push 0
push eax
call fcn.004e9730
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0xccc]
add esp, 0xc
add eax, eax
push eax
push 0x7f
push ecx
call fcn.004e9730
mov edx, dword [ebx + 0x84]
mov eax, dword [ebx + 0xcd0]
add esp, 0xc
add edx, edx
push edx
push 0x7f
push eax
call fcn.004e9730
add esp, 0xc
cmp dword [ebx + 0x88], 0x120
jbe 0x45ecc0
cmp dword [ebx + 0x1b8], 0
je 0x45ecc0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x118]
mov esi, dword [ecx]
mov edi, dword [ebp - 0x108]
push edx
push esi
push edi
call fcn.004ef8a0
mov eax, dword [ebp - 0x114]
add esp, 0xc
push edi
mov edi, dword [ebp - 0x118]
push eax
push esi
call fcn.0048b710
add esp, 0xc
emms
cmp dword [ebx + 0xdcc], 0
je 0x45f033
mov eax, dword [ebx + 0x88]
cmp eax, 0x120
ja 0x45ef27
cmp dword [ebx + 0x84], 0x160
ja 0x45ee03
cmp dword [ebx + 0xd24], 0
jle 0x45f033
mov eax, dword [ebx + 0xd24]
mov esi, dword [ebx + 0xd2c]
cdq
sub eax, edx
mov edi, eax
mov eax, esi
sub esi, dword [ebx + 0xd24]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebx + 0xd28]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0xd30]
cdq
sar edi, 1
sar ecx, 1
sub eax, edx
add esi, 1
sar eax, 1
sub ecx, edi
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [ebx + 0xd28]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x20], ecx
cmp esi, dword [ebx + 0xd30]
jg 0x45ed83
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x28]
imul edx, esi
add edx, dword [ebx + 0xd24]
mov eax, dword [ebp - 0x1c]
add edx, dword [eax]
push ecx
push 0x23
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45ed53
mov esi, dword [ebp - 0x124]
lea esp, [esp]
cmp esi, dword [ebp - 0x11c]
jg 0x45edc2
mov edx, dword [ebx + 0x84]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
shr edx, 1
imul edx, esi
add edx, dword [eax + 4]
push ecx
add edx, edi
push 0xd4
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45ed90
mov esi, dword [ebp - 0x124]
jmp 0x45edd0
cmp esi, dword [ebp - 0x11c]
jg 0x45f033
mov edx, dword [ebx + 0x84]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
shr edx, 1
imul edx, esi
add edx, dword [eax + 8]
push ecx
add edx, edi
push 0x72
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45edd0
cmp eax, 0x120
ja 0x45ef27
cmp dword [ebx + 0x84], 0x2c0
ja 0x45ef27
cmp dword [ebx + 0xd24], 0
jle 0x45f033
mov eax, dword [ebx + 0xd24]
mov ecx, dword [ebx + 0xd2c]
lea edi, [eax + eax]
mov eax, dword [ebx + 0xd28]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0xd30]
lea esi, [ecx + ecx]
sub ecx, dword [ebx + 0xd24]
cdq
sub esi, edi
sub eax, edx
add esi, 1
sar eax, 1
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [ebx + 0xd28]
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x20], ecx
lea esp, [esp]
cmp esi, dword [ebx + 0xd30]
jg 0x45eeac
mov edx, dword [ebx + 0x84]
mov eax, dword [ebp - 0x1c]
imul edx, esi
mov ecx, dword [ebp - 0x28]
add edx, dword [eax]
push ecx
add edx, edi
push 0x23
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45ee80
mov esi, dword [ebp - 0x134]
cmp esi, dword [ebp - 0x12c]
jg 0x45eee8
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
shr edx, 1
imul edx, esi
add edx, dword [ebx + 0xd24]
push ecx
add edx, dword [eax + 4]
push 0xd4
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45eeb2
mov esi, dword [ebp - 0x134]
mov edi, edi
cmp esi, dword [ebp - 0x12c]
jg 0x45f033
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
shr edx, 1
imul edx, esi
add edx, dword [ebx + 0xd24]
push ecx
add edx, dword [eax + 8]
push 0x72
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45eef0
cmp eax, 0x240
ja 0x45f033
cmp dword [ebx + 0x84], 0x2c0
ja 0x45f033
mov eax, dword [ebx + 0xd24]
test eax, eax
jle 0x45f033
mov edx, dword [ebx + 0xd28]
mov esi, dword [ebx + 0xd30]
lea edi, [eax + eax]
mov eax, dword [ebx + 0xd2c]
lea ecx, [eax + eax]
sub eax, dword [ebx + 0xd24]
sub ecx, edi
add esi, esi
add edx, edx
add ecx, 1
add eax, 1
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], eax
mov esi, edx
cmp esi, dword [ebp - 0x2b8]
jg 0x45efb4
mov edx, dword [ebx + 0x84]
mov eax, dword [ebp - 0x1c]
imul edx, esi
mov ecx, dword [ebp - 0x28]
add edx, dword [eax]
push ecx
add edx, edi
push 0x23
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45ef88
mov esi, dword [ebx + 0xd28]
lea ebx, [ebx]
cmp esi, dword [ebx + 0xd30]
jg 0x45eff6
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
shr edx, 1
imul edx, esi
add edx, dword [ebx + 0xd24]
push ecx
add edx, dword [eax + 4]
push 0xd4
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45efc0
mov esi, dword [ebx + 0xd28]
lea esp, [esp]
cmp esi, dword [ebx + 0xd30]
jg 0x45f033
mov edx, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
shr edx, 1
imul edx, esi
add edx, dword [ebx + 0xd24]
push ecx
add edx, dword [eax + 8]
push 0x72
push edx
call fcn.004e9730
add esp, 0xc
add esi, 1
jmp 0x45f000
cmp byte [ebx + 0x808], 1
jne 0x45f1ce
mov eax, dword [ebp - 0x5c]
xor edx, edx
div dword [ebp - 0xcc]
test edx, edx
jne 0x45f1ce
mov eax, dword [ebx + 0xd0c]
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x20c], 1
jne 0x45f075
mov dword [ebp - 0x200], 4
jmp 0x45f095
cmp eax, 1
jne 0x45f086
mov dword [ebp - 0x200], 0x14
jmp 0x45f095
cmp eax, 2
jne 0x45f095
mov dword [ebp - 0x200], 0x64
mov edx, dword [ebx + 0xd18]
mov esi, dword [ebx + 0xd10]
cmp edx, esi
jle 0x45f15d
mov eax, dword [ebx + 0xd1c]
mov ecx, dword [ebx + 0xd14]
cmp eax, ecx
jle 0x45f15d
mov edi, dword [ebx + 0x88]
cmp edi, 0x120
ja 0x45f126
cmp dword [ebx + 0x84], 0x160
ja 0x45f0f4
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1f0], eax
jmp 0x45f181
cmp edi, 0x120
ja 0x45f126
cmp dword [ebx + 0x84], 0x2c0
ja 0x45f126
add esi, esi
add edx, edx
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1f0], eax
jmp 0x45f181
cmp edi, 0x240
ja 0x45f181
cmp dword [ebx + 0x84], 0x2c0
ja 0x45f181
add edx, edx
add esi, esi
mov dword [ebp - 0x1f8], edx
add ecx, ecx
lea edx, [eax + eax]
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1f0], edx
jmp 0x45f181
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x88]
mov dword [ebp - 0x1fc], edi
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edi
mov dword [ebp - 0x1f0], ecx
mov esi, dword [ebp - 0x1c]
lea edx, [ebp - 0x224]
push esi
push edx
call fcn.0048c7f0
mov eax, dword [ebp - 0x204]
add esp, 8
cmp eax, dword [ebp - 0x200]
jle 0x45f1d1
cmp byte [ebx + 0x808], 0
je 0x45f1b2
or dword [ebx + 0x29c], 0x20
cmp dword [ebx + 0xd20], 1
jne 0x45f1d1
or dword [ebx + 0x29c], 8
mov dword [ebp - 0x8c], 1
jmp 0x45f1d1
mov esi, dword [ebp - 0x1c]
cmp dword [ebx + 0x1a8], 1
jne 0x45f259
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2a8]
lea edx, [ebp - 0x2ac]
push edx
mov edx, dword [ebp - 0x50]
push 0
push eax
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [edx]
mov edx, dword [esi]
mov edi, ecx
call fcn.0048c5e0
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x14]
add esp, 0x10
lea ecx, [ebp - 0x2ac]
push ecx
sar eax, 1
push 1
push eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 4]
sar edi, 1
push edx
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.0048c5e0
mov edx, dword [ebp - 0x28]
mov eax, dword [esi + 0x18]
add esp, 0x10
lea ecx, [ebp - 0x2ac]
push ecx
mov ecx, dword [ebp - 0x50]
push 2
push edx
mov edx, dword [esi + 8]
push eax
mov eax, dword [ecx + 8]
mov ecx, edi
call fcn.0048c5e0
add esp, 0x10
emms
mov edx, dword [ebp - 0x68]
cmp dword [edx + 0x24], 0
je 0x45fb5e
call fcn.004c2ca4
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45f280
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x54], eax
lea esi, [ebp - 0x258]
mov byte [ebp - 4], 0xb
call fcn.004058c0
mov ecx, esi
push ecx
mov esi, str._y__m__d__H:_M:_S
lea edi, [ebp - 0x104]
call fcn.00405a40
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xc
call fcn.00404e60
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x104]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45f2e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx - 0xc]
xor edi, edi
mov dword [ebp - 0x28], edx
xor eax, eax
cmp eax, dword [ebp - 0x28]
mov esi, 0x2c0
jge 0x45fb3e
cmp eax, edi
jl 0x45fb34
cmp eax, dword [ecx - 0xc]
jg 0x45fb34
mov edx, dword [ebx + 0x88]
cmp edx, 0x240
mov cl, byte [eax + ecx]
jne 0x45f470
cmp dword [ebx + 0x84], esi
jne 0x45f470
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45f347.33
movzx ecx, byte [ecx + 0x460a0c]
jmp dword [ecx*4 + 0x4609d4]
mov dword [ebp - 0x44], 0x570468
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x570768
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56dee8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56cda8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56d9a8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56d6a8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56fda8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56e5a8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56d228
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x5700a8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56f928
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56caa8
jmp case.0x45f347.33
mov dword [ebp - 0x44], 0x56f4a8
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx edi, byte [edx + esi + 0x389a]
movzx ecx, byte [edx + esi + 0x38a9]
add ecx, edi
movzx edi, byte [edx + esi + 0xb9e9]
movzx edx, byte [edx + esi + 0xb9da]
add ecx, edi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45f407
xor ecx, ecx
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f421
cmp ecx, 0x60
jge 0x45f41a
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f421
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
xor edi, edi
cmp edi, 0x30
jge 0x45fb27
xor esi, esi
cmp esi, 0x10
jge 0x45f46b
mov ecx, dword [ebp - 0x44]
mov edx, edi
shl edx, 4
add edx, esi
cmp byte [edx + ecx], 0
je 0x45f466
lea edx, [edi + 0x14]
imul edx, dword [ebx + 0x84]
mov ecx, eax
shl ecx, 4
add edx, ecx
mov ecx, dword [ebp - 0x1c]
add edx, dword [ecx]
mov cl, byte [ebp - 0x18]
mov byte [edx + esi + 0x19a], cl
add esi, 1
jmp 0x45f431
add edi, 1
jmp 0x45f426
cmp edx, 0x120
jne 0x45f719
cmp dword [ebx + 0x84], esi
jne 0x45f5cc
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45f49e.33
movzx edx, byte [ecx + 0x460a60]
jmp dword [edx*4 + 0x460a28]
mov dword [ebp - 0x38], 0x56f328
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56ef68
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56fc28
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56ede8
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56f1a8
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56ea28
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56c928
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56e2a8
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56e8a8
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56dd68
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56f7a8
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56ec68
jmp case.0x45f49e.33
mov dword [ebp - 0x38], 0x56d0a8
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx]
lea esi, [eax + eax*2 + 0x840]
lea esi, [ecx + esi*4]
lea edx, [eax + eax*2]
lea edx, [ecx + edx*4 + 0xa240]
movzx ecx, byte [esi + 0x1d3]
movzx esi, byte [esi + 0x1cc]
add ecx, esi
movzx esi, byte [edx + 0x1d3]
movzx edx, byte [edx + 0x1cc]
add ecx, esi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45f56a
mov dword [ebp - 0x18], edi
mov dword [ebx + eax*4 + 0x818], edi
jmp 0x45f587
cmp ecx, 0x60
jge 0x45f57d
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f584
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
cmp edi, 0x30
jge 0x45fb27
xor esi, esi
cmp esi, 8
jge 0x45f5c7
mov ecx, dword [ebp - 0x38]
lea edx, [esi + edi*8]
cmp byte [edx + ecx], 0
je 0x45f5c2
lea edx, [edi + 0xc]
imul edx, dword [ebx + 0x84]
lea ecx, [eax + eax*2]
lea edx, [edx + ecx*4]
mov ecx, dword [ebp - 0x1c]
add edx, dword [ecx]
mov cl, byte [ebp - 0x18]
mov byte [edx + esi + 0x1cc], cl
add esi, 1
jmp 0x45f592
add edi, 1
jmp 0x45f587
cmp edx, 0x120
jne 0x45f719
cmp dword [ebx + 0x84], 0x160
jne 0x45f719
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45f5fe.33
movzx edx, byte [ecx + 0x460ab4]
jmp dword [edx*4 + 0x460a7c]
mov dword [ebp - 0x4c], 0x56eba8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x570be8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56f0e8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56d5e8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56dca8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x570b28
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56e4e8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56c868
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x5703a8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56e428
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56e1e8
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x570a68
jmp case.0x45f5fe.33
mov dword [ebp - 0x4c], 0x56d528
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
movzx esi, byte [edx + eax*8 + 0x7ad]
movzx ecx, byte [edx + eax*8 + 0x7b4]
add ecx, esi
movzx esi, byte [edx + eax*8 + 0x2754]
movzx edx, byte [edx + eax*8 + 0x274d]
add ecx, esi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45f6ba
mov dword [ebp - 0x18], edi
mov dword [ebx + eax*4 + 0x818], edi
jmp 0x45f6d7
cmp ecx, 0x60
jge 0x45f6cd
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f6d4
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
cmp edi, 0x18
jge 0x45fb27
xor esi, esi
cmp esi, 8
jge 0x45f714
mov ecx, dword [ebp - 0x4c]
lea edx, [esi + edi*8]
cmp byte [edx + ecx], 0
je 0x45f70f
lea edx, [edi + 5]
imul edx, dword [ebx + 0x84]
lea ecx, [edx + eax*8]
mov edx, dword [ebp - 0x1c]
add ecx, dword [edx]
mov dl, byte [ebp - 0x18]
mov byte [ecx + esi + 0xcd], dl
add esi, 1
jmp 0x45f6e2
add edi, 1
jmp 0x45f6d7
cmp edx, 0x1e0
jne 0x45f87f
cmp dword [ebx + 0x84], 0x280
jne 0x45f87f
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45f74b.33
movzx ecx, byte [ecx + 0x460b08]
jmp dword [ecx*4 + 0x460ad0]
mov dword [ebp - 0x40], 0x570468
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x570768
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56dee8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56cda8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56d9a8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56d6a8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56fda8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56e5a8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56d228
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x5700a8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56f928
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56caa8
jmp case.0x45f74b.33
mov dword [ebp - 0x40], 0x56f4a8
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx edi, byte [edx + esi + 0x3354]
movzx ecx, byte [edx + esi + 0x3363]
add ecx, edi
movzx edi, byte [edx + esi + 0xa8e3]
movzx edx, byte [edx + esi + 0xa8d4]
add ecx, edi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45f80b
xor ecx, ecx
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f825
cmp ecx, 0x60
jge 0x45f81e
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f825
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
xor edi, edi
lea ebx, [ebx]
cmp edi, 0x30
jge 0x45fb27
xor esi, esi
jmp 0x45f840
cmp esi, 0x10
jge 0x45f87a
mov ecx, dword [ebp - 0x40]
mov edx, edi
shl edx, 4
add edx, esi
cmp byte [edx + ecx], 0
je 0x45f875
lea edx, [edi + 0x14]
imul edx, dword [ebx + 0x84]
mov ecx, eax
shl ecx, 4
add edx, ecx
mov ecx, dword [ebp - 0x1c]
add edx, dword [ecx]
mov cl, byte [ebp - 0x18]
mov byte [edx + esi + 0x154], cl
add esi, 1
jmp 0x45f840
add edi, 1
jmp 0x45f830
cmp edx, 0xf0
jne 0x45fb27
cmp dword [ebx + 0x84], 0x280
jne 0x45f9da
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45f8b1.33
movzx edx, byte [ecx + 0x460b5c]
jmp dword [edx*4 + 0x460b24]
mov dword [ebp - 0x48], 0x56f328
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56ef68
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56fc28
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56ede8
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56f1a8
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56ea28
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56c928
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56e2a8
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56e8a8
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56dd68
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56f7a8
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56ec68
jmp case.0x45f8b1.33
mov dword [ebp - 0x48], 0x56d0a8
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx]
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
movzx edi, byte [edx + esi + 0x1a90]
movzx ecx, byte [edx + esi + 0x1a97]
add ecx, edi
movzx edi, byte [edx + esi + 0x9017]
movzx edx, byte [edx + esi + 0x9010]
add ecx, edi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45f973
xor ecx, ecx
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f98d
cmp ecx, 0x60
jge 0x45f986
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45f98d
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
xor edi, edi
cmp edi, 0x30
jge 0x45fb27
xor esi, esi
lea ecx, [ecx]
cmp esi, 8
jge 0x45f9d5
mov ecx, dword [ebp - 0x48]
lea edx, [esi + edi*8]
cmp byte [edx + ecx], 0
je 0x45f9d0
lea edx, [edi + 0xa]
imul edx, dword [ebx + 0x84]
lea ecx, [eax + eax*2]
lea edx, [edx + ecx*4]
mov ecx, dword [ebp - 0x1c]
add edx, dword [ecx]
mov cl, byte [ebp - 0x18]
mov byte [edx + esi + 0x190], cl
add esi, 1
jmp 0x45f9a0
add edi, 1
jmp 0x45f992
cmp edx, 0xf0
jne 0x45fb27
cmp dword [ebx + 0x84], 0x140
jne 0x45fb27
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x45fa0c.33
movzx edx, byte [ecx + 0x460bb0]
jmp dword [edx*4 + 0x460b78]
mov dword [ebp - 0x3c], 0x56eba8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x570be8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56f0e8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56d5e8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56dca8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x570b28
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56e4e8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56c868
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x5703a8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56e428
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56e1e8
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x570a68
jmp case.0x45fa0c.33
mov dword [ebp - 0x3c], 0x56d528
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
movzx esi, byte [edx + eax*8 + 0x6ef]
movzx ecx, byte [edx + eax*8 + 0x6f6]
add ecx, esi
movzx esi, byte [edx + eax*8 + 0x23b6]
movzx edx, byte [edx + eax*8 + 0x23af]
add ecx, esi
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x45fac7
xor ecx, ecx
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45fae1
cmp ecx, 0x60
jge 0x45fada
mov ecx, 0xff
mov dword [ebx + eax*4 + 0x818], ecx
jmp 0x45fae1
mov ecx, dword [ebx + eax*4 + 0x818]
mov dword [ebp - 0x18], ecx
xor edi, edi
cmp edi, 0x18
jge 0x45fb27
xor esi, esi
lea ecx, [ecx]
cmp esi, 8
jge 0x45fb22
mov ecx, dword [ebp - 0x3c]
lea edx, [esi + edi*8]
cmp byte [edx + ecx], 0
je 0x45fb1d
lea edx, [edi + 5]
imul edx, dword [ebx + 0x84]
lea ecx, [edx + eax*8]
mov edx, dword [ebp - 0x1c]
add ecx, dword [edx]
mov dl, byte [ebp - 0x18]
mov byte [ecx + esi + 0xaf], dl
add esi, 1
jmp 0x45faf0
add edi, 1
jmp 0x45fae6
mov ecx, dword [ebp - 0x54]
add eax, 1
xor edi, edi
jmp 0x45f2f1
push 0x80070057
call fcn.00404150
lea eax, [ecx - 0x10]
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45fb5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x68]
cmp dword [ecx + 0x28], 0
je 0x45fd99
mov ecx, dword [ebx + 0x88]
cmp ecx, 0x120
jbe 0x45fc41
mov eax, dword [ebx + 0x84]
cmp eax, 0x160
jbe 0x45fc35
mov edi, dword [ebp - 0x1c]
mov ecx, dword [edi]
mov edx, eax
imul edx, edx, 0x43
movzx esi, byte [edx + ecx + 0x173]
lea eax, [eax + eax*4]
add edx, ecx
movzx edx, byte [edx + 0x14]
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x173]
movzx ecx, byte [ecx + 0x14]
add eax, esi
add eax, ecx
add eax, edx
sar eax, 2
cmp eax, 0xd0
jle 0x45fbd1
xor ecx, ecx
mov dword [ebx + 0x878], ecx
jmp 0x45fbe9
cmp eax, 0x60
jge 0x45fbe3
mov ecx, 0xff
mov dword [ebx + 0x878], ecx
jmp 0x45fbe9
mov ecx, dword [ebx + 0x878]
xor esi, esi
jmp 0x45fbf0
cmp esi, 0x30
jge 0x45fd9c
xor eax, eax
jmp 0x45fc00
cmp eax, 0x160
jge 0x45fc30
mov edx, esi
imul edx, edx, 0x160
add edx, eax
cmp byte [edx + ebx + 0x3ad0], 0
je 0x45fc2b
lea edx, [esi + 0x14]
imul edx, dword [ebx + 0x84]
add edx, dword [edi]
mov byte [edx + eax + 0x14], cl
add eax, 1
jmp 0x45fc00
add esi, 1
jmp 0x45fbf0
cmp ecx, 0x120
ja 0x45fcf5
mov eax, dword [ebx + 0x84]
cmp eax, 0x160
jbe 0x45fcf5
mov edi, dword [ebp - 0x1c]
mov ecx, dword [edi]
mov edx, eax
imul edx, edx, 0x23
movzx esi, byte [edx + ecx + 0x16e]
lea eax, [eax + eax*2]
add edx, ecx
movzx edx, byte [edx + 0xf]
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x16e]
movzx ecx, byte [ecx + 0xf]
add eax, esi
add eax, ecx
add eax, edx
sar eax, 2
cmp eax, 0xd0
jle 0x45fc95
xor ecx, ecx
mov dword [ebx + 0x878], ecx
jmp 0x45fcad
cmp eax, 0x60
jge 0x45fca7
mov ecx, 0xff
mov dword [ebx + 0x878], ecx
jmp 0x45fcad
mov ecx, dword [ebx + 0x878]
xor esi, esi
nop
cmp esi, 0x18
jge 0x45fd9c
xor eax, eax
jmp 0x45fcc0
cmp eax, 0x160
jge 0x45fcf0
mov edx, esi
imul edx, edx, 0x160
add edx, eax
cmp byte [edx + ebx + 0x19d0], 0
je 0x45fceb
lea edx, [esi + 0xc]
imul edx, dword [ebx + 0x84]
add edx, dword [edi]
mov byte [edx + eax + 0xf], cl
add eax, 1
jmp 0x45fcc0
add esi, 1
jmp 0x45fcb0
mov ecx, dword [ebx + 0x84]
mov edi, dword [ebp - 0x1c]
mov edx, dword [edi]
lea eax, [ecx*8]
sub eax, ecx
lea esi, [edx + eax*4]
lea eax, [edx + ecx*4 + 8]
movzx eax, byte [ecx + eax + 2]
lea edx, [edx + ecx*4]
movzx ecx, byte [ecx + edx + 0x89]
movzx edx, byte [esi + 0x89]
add eax, ecx
movzx ecx, byte [esi + 0xa]
add eax, edx
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x45fd45
xor ecx, ecx
mov dword [ebx + 0x878], ecx
jmp 0x45fd5d
cmp eax, 0x60
jge 0x45fd57
mov ecx, 0xff
mov dword [ebx + 0x878], ecx
jmp 0x45fd5d
mov ecx, dword [ebx + 0x878]
xor esi, esi
nop
cmp esi, 0x18
jge 0x45fd9c
xor eax, eax
cmp eax, 0x80
jge 0x45fd94
mov edx, esi
shl edx, 7
add edx, eax
cmp byte [edx + ebx + 0xdd0], 0
je 0x45fd8f
lea edx, [esi + 5]
imul edx, dword [ebx + 0x84]
add edx, dword [edi]
mov byte [edx + eax + 0xa], cl
add eax, 1
jmp 0x45fd67
add esi, 1
jmp 0x45fd60
mov edi, dword [ebp - 0x1c]
cmp dword [ebx + 0x18c], 0
je 0x45fdbb
add ebx, 0xa0
push ebx
mov ebx, dword [ebp - 0x94]
push edi
call fcn.0046dcb0
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x7d84], 0
mov esi, dword [ebp - 0x90]
jne 0x460155
cmp dword [ebx + 0x7d3c], 0
jg 0x45fdfb
cmp byte [ebx + 0x294], 0
jne 0x45fdfb
cmp byte [ebx + 0x295], 0
jne 0x45fdfb
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 4]
mov dword [ecx + 8], 1
jmp 0x4605f2
cmp dword [ebp - 0x5c], 1
jbe 0x4605f2
mov ecx, dword [ebx + 0x7cf4]
cmp ecx, 0xa
jb 0x45fe15
mov ecx, 9
mov eax, dword [ebp - 0x5c]
xor edx, edx
div dword [ecx*8 + 0x558b80]
cmp dword [ecx*8 + 0x558b84], 0
je 0x45fe32
test edx, edx
setne al
jmp 0x45fe37
test edx, edx
sete al
test al, al
je 0x4605f2
cmp dword [ebx + 0xdbc], 0
mov ecx, dword [ebp - 0x60]
je 0x45fe5f
mov edx, dword [ecx + 4]
mov dword [edx + 8], 1
mov dword [ebx + 0xdbc], 0
mov edx, dword [ebx + 0x1b4]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push edx
mov edx, dword [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x34]
add edx, 0xe
push edx
mov edx, dword [ebp - 0x50]
push edx
call eax
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx + 0x12]
mov edi, eax
xor eax, eax
and dl, 0xc0
cmp dl, 0xc0
sete al
test edi, edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x54], eax
jle 0x4605f2
cmp byte [ebx + 0x294], 0
je 0x45ff1a
cmp dword [ebx + 0x7d34], 0
je 0x45ff05
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp - 0x34]
mov ecx, edi
mov edi, dword [ebx + 0x7d34]
push 1
push ecx
mov ecx, dword [ebp - 0x64]
push edx
mov edx, dword [ebp - 0x54]
call fcn.0047cc70
mov eax, dword [ebx + 0x7d34]
add esp, 0xc
cmp dword [eax + 0x2044], 0
jne 0x45fef8
mov esi, ebx
call fcn.0044a030
mov esi, dword [ebp - 0x90]
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x6c]
add eax, 1
cmp eax, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], eax
jb 0x45ff1a
or dword [ebx + 0x29c], 0x50
cmp byte [ebx + 0x295], 0
je 0x45ffd1
cmp dword [ebx + 0x7d38], 0
je 0x45ff84
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov edi, dword [ebx + 0x7d38]
push 1
push ecx
mov ecx, dword [ebp - 0x64]
push edx
mov edx, dword [ebp - 0x54]
call fcn.0047cc70
mov eax, dword [ebx + 0x7d38]
add esp, 0xc
cmp dword [eax + 0x2044], 0
jne 0x45ff77
mov esi, ebx
call fcn.0044a030
mov esi, dword [ebp - 0x90]
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x78]
add eax, 1
test eax, eax
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
mov dword [ebp - 0x78], eax
jge 0x45ff9d
fadd dword [0x540f90]
fild dword [ebx + 0xd08]
fmul dword [ebx + 0x78]
fcompp
fnstsw ax
test ah, 0x41
jp 0x45ffb9
or dword [ebx + 0x29c], 0x80
mov eax, dword [ebp - 0x58]
add eax, 1
cmp eax, dword [ebp - 0x7c]
mov dword [ebp - 0x58], eax
jb 0x45ffd1
or dword [ebx + 0x29c], 0x80
mov ecx, dword [ebx + 0x7d3c]
test ecx, ecx
jle 0x4605f2
xor eax, eax
mov edx, ecx
cmp eax, 0x80
mov dword [ebp - 0x18], eax
jge 0x4605f2
test edx, edx
jle 0x4605f2
mov eax, dword [esi + eax*4]
test eax, eax
je 0x460122
mov ecx, dword [eax + 0x24]
cmp ecx, dword [ebx + 0x154]
jne 0x460122
mov ecx, dword [eax + 0x28]
cmp ecx, dword [ebx + 0x158]
jne 0x460122
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [ebx + 0x15c]
jne 0x460122
mov edi, dword [eax + 0x14]
sub edx, 1
cmp dword [ebp - 0x54], 0
lea ecx, [eax + 0x14]
mov dword [ebp - 0x20], edx
je 0x46012d
cmp edi, 0x19
jl 0x460075
mov edx, 0xa
sub edx, edi
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + eax*4]
mov eax, dword [ecx + 0xc]
sub eax, edi
add eax, 0x32
xor edx, edx
mov edi, 0x28
div edi
mov dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + ecx*4]
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x28], edx
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + eax*4]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x493e0
lea edi, [edx + ecx + 0x30]
mov ecx, dword [ebp - 0x70]
mov byte [edi + 4], 6
lea edx, [ecx + 0x12]
mov dword [edi], edx
mov edx, dword [esi + eax*4]
movzx edx, byte [edx + 0x24]
mov byte [edi + 5], dl
mov edx, dword [esi + eax*4]
movzx edx, byte [edx + 0x28]
mov byte [edi + 6], dl
mov eax, dword [esi + eax*4]
movzx edx, byte [eax + 0x2c]
mov eax, dword [ebp - 0x34]
push ecx
add eax, 0xe
push eax
lea ecx, [edi + 0x12]
push ecx
mov byte [edi + 7], dl
call fcn.004ef8a0
mov al, byte [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
and al, 1
add al, al
add al, al
add al, al
or al, 1
mov byte [edi + 9], al
mov eax, dword [ebp - 0x64]
mov edx, dword [eax]
mov dword [edi + 0xa], edx
mov eax, dword [eax + 4]
mov dword [edi + 0xe], eax
mov ecx, dword [esi + ecx*4]
mov eax, dword [ecx + 0xc]
add eax, 1
xor edx, edx
mov edi, 0x28
div edi
add esp, 0xc
mov dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x18]
mov eax, dword [esi + edx*4]
add eax, 0x14
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add eax, 1
jmp 0x45ffe3
cmp dword [eax + 0x1c], 0
je 0x460122
cmp edi, 0x28
jge 0x460143
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x460081
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x18]
add eax, 1
jmp 0x45ffe3
cmp dword [ebx + 0x7d3c], 0
jle 0x4603ff
cmp dword [ebp - 0x5c], 1
jbe 0x46040c
mov ecx, dword [ebx + 0x98]
cmp ecx, 0xa
jb 0x46017c
mov ecx, 9
mov eax, dword [ebp - 0x5c]
xor edx, edx
div dword [ecx*8 + 0x558b80]
cmp dword [ecx*8 + 0x558b84], 0
je 0x460199
test edx, edx
setne al
jmp 0x46019e
test edx, edx
sete al
test al, al
je 0x46040c
mov al, byte [ebp - 0x2d]
cmp al, 3
mov edx, dword [ebp - 0x50]
jne 0x4601d5
mov eax, dword [ebx + 0x94]
mov ecx, dword [ebx + 0x90]
mov edx, dword [edx]
push eax
mov eax, dword [ebp - 0x164]
push ecx
push edx
push eax
call dword [0x5a15b8]
add esp, 0x10
emms
jmp 0x460217
cmp al, 1
jne 0x4601fe
mov eax, dword [ebx + 0x94]
mov ecx, dword [ebx + 0x90]
mov edx, dword [edx]
push eax
mov eax, dword [ebp - 0x164]
push ecx
push edx
push eax
call dword [0x5a15d4]
add esp, 0x10
emms
jmp 0x460217
mov ecx, dword [ebp - 0x84]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x164]
push eax
push ecx
call fcn.004ef8a0
add esp, 0xc
cmp byte [ebx + 0xdc0], 0
je 0x460234
mov edx, dword [ebp - 0x74]
mov eax, dword [edx + 4]
mov dword [eax + 8], 1
mov byte [ebx + 0xdc0], 0
mov eax, dword [ebx + 0x1b4]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push eax
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x34]
add eax, 0xe
push eax
lea eax, [ebp - 0x164]
push eax
call edx
mov edi, eax
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 0x12]
xor edx, edx
and cl, 0xc0
cmp cl, 0xc0
sete dl
test edi, edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x70], edx
jle 0x46040c
mov ecx, dword [ebx + 0x7d3c]
test ecx, ecx
jle 0x46040c
xor eax, eax
mov edx, ecx
cmp eax, 0x80
mov dword [ebp - 0x18], eax
jge 0x46040c
test edx, edx
jle 0x46040c
mov eax, dword [esi + eax*4]
test eax, eax
je 0x4603cc
mov ecx, dword [eax + 0x24]
cmp ecx, dword [ebx + 0x154]
jne 0x4603cc
mov ecx, dword [eax + 0x28]
cmp ecx, dword [ebx + 0x158]
jne 0x4603cc
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [ebx + 0x15c]
jne 0x4603cc
mov edi, dword [eax + 0x14]
sub edx, 1
cmp dword [ebp - 0x70], 0
lea ecx, [eax + 0x14]
mov dword [ebp - 0x20], edx
je 0x4603d7
cmp edi, 0x19
jl 0x46031f
mov edx, 0xa
sub edx, edi
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + eax*4]
mov eax, dword [ecx + 0xc]
sub eax, edi
add eax, 0x32
xor edx, edx
mov edi, 0x28
div edi
mov dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + ecx*4]
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x28], edx
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + eax*4]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x493e0
lea edi, [edx + ecx + 0x30]
mov ecx, dword [ebp - 0x54]
mov byte [edi + 4], 6
lea edx, [ecx + 0x12]
mov dword [edi], edx
mov edx, dword [esi + eax*4]
movzx edx, byte [edx + 0x24]
mov byte [edi + 5], dl
mov edx, dword [esi + eax*4]
movzx edx, byte [edx + 0x28]
mov byte [edi + 6], dl
mov eax, dword [esi + eax*4]
movzx edx, byte [eax + 0x2c]
mov eax, dword [ebp - 0x34]
push ecx
add eax, 0xe
push eax
lea ecx, [edi + 0x12]
push ecx
mov byte [edi + 7], dl
call fcn.004ef8a0
mov al, byte [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
and al, 1
add al, al
add al, al
add al, al
or al, 1
mov byte [edi + 9], al
mov eax, dword [ebp - 0x64]
mov edx, dword [eax]
mov dword [edi + 0xa], edx
mov eax, dword [eax + 4]
mov dword [edi + 0xe], eax
mov eax, dword [esi + ecx*4]
mov eax, dword [eax + 0xc]
add eax, 1
xor edx, edx
mov edi, 0x28
div edi
mov eax, dword [esi + ecx*4]
add esp, 0xc
mov dword [eax + 0xc], edx
mov ecx, dword [esi + ecx*4]
add ecx, 0x14
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add eax, 1
jmp 0x46028d
cmp dword [eax + 0x1c], 0
je 0x4603cc
cmp edi, 0x28
jge 0x4603ed
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x46032b
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x18]
add eax, 1
jmp 0x46028d
mov edx, dword [ebp - 0x74]
mov eax, dword [edx + 4]
mov dword [eax + 8], 1
cmp byte [ebx + 0x294], 0
jne 0x460430
cmp byte [ebx + 0x295], 0
jne 0x460430
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 4]
mov dword [edx + 8], 1
jmp 0x4605f2
cmp dword [ebp - 0x5c], 1
jbe 0x4605f2
mov ecx, dword [ebx + 0x7cf4]
cmp ecx, 0xa
jb 0x46044a
mov ecx, 9
mov eax, dword [ebp - 0x5c]
xor edx, edx
div dword [ecx*8 + 0x558b80]
cmp dword [ecx*8 + 0x558b84], 0
je 0x460467
test edx, edx
setne al
jmp 0x46046c
test edx, edx
sete al
test al, al
je 0x4605f2
cmp dword [ebx + 0xdbc], 0
mov ecx, dword [ebp - 0x60]
je 0x460494
mov eax, dword [ecx + 4]
mov dword [eax + 8], 1
mov dword [ebx + 0xdbc], 0
mov eax, dword [ebx + 0x1b4]
mov edi, dword [ebp - 0x34]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push eax
mov eax, dword [ebp - 0x98]
push eax
lea eax, [edi + 0xe]
push eax
mov eax, dword [ebp - 0x50]
push eax
call edx
mov esi, eax
mov al, byte [edi + 0x12]
xor ecx, ecx
and al, 0xc0
cmp al, 0xc0
sete cl
test esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], ecx
jle 0x4605f2
cmp byte [ebx + 0x294], 0
je 0x460544
cmp dword [ebx + 0x7d34], 0
je 0x46052f
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0x64]
push 1
mov edx, edi
mov edi, dword [ebx + 0x7d34]
push esi
push edx
mov edx, dword [ebp - 0x28]
call fcn.0047cc70
mov eax, dword [ebx + 0x7d34]
add esp, 0xc
cmp dword [eax + 0x2044], 0
jne 0x460522
mov esi, ebx
call fcn.0044a030
mov esi, dword [ebp - 0x20]
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x6c]
add eax, 1
cmp eax, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], eax
jb 0x460544
or dword [ebx + 0x29c], 0x50
cmp byte [ebx + 0x295], 0
je 0x4605f2
cmp dword [ebx + 0x7d38], 0
je 0x4605a5
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebx + 0x7d38]
mov edx, dword [ebp - 0x28]
push 1
push esi
push ecx
mov ecx, dword [ebp - 0x64]
call fcn.0047cc70
mov edx, dword [ebx + 0x7d38]
add esp, 0xc
cmp dword [edx + 0x2044], 0
jne 0x460598
mov esi, ebx
call fcn.0044a030
lea eax, [ebx + 0x7d1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x78]
add eax, 1
test eax, eax
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
mov dword [ebp - 0x78], eax
jge 0x4605be
fadd dword [0x540f90]
fild dword [ebx + 0xd08]
fmul dword [ebx + 0x78]
fcompp
fnstsw ax
test ah, 0x41
jp 0x4605da
or dword [ebx + 0x29c], 0x80
mov eax, dword [ebp - 0x58]
add eax, 1
cmp eax, dword [ebp - 0x7c]
mov dword [ebp - 0x58], eax
jb 0x4605f2
or dword [ebx + 0x29c], 0x80
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0xb0], eax
xor edi, edi
jmp 0x45e510
mov eax, dword [ebx + 0xd04]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_CancelGetAudio_int_]
mov ecx, dword [ebx + 0x7cfc]
add esp, 4
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebx + 0x7cfc]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx + 0x7cfc], 0
call fcn.00460bd0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xd04]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_StopChannel_int_]
mov ecx, dword [edi + 0xd04]
add esp, 4
push ecx
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_CloseChannel_int_]
add esp, 4
push 0x2c
xor ebx, ebx
lea edx, [edi + 0xcc8]
push ebx
push edx
call fcn.004e9730
mov eax, dword [ebp - 0x108]
add esp, 0xc
cmp eax, ebx
je 0x4606b6
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004e0dcf
add esp, 4
mov eax, dword [ebp - 0x214]
cmp eax, ebx
je 0x4606cf
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004e0dcf
add esp, 4
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x278]
cmp eax, ebx
je 0x4606eb
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004e0dcf
add esp, 4
add esi, 1
cmp esi, 3
jl 0x4606d1
mov esi, dword [edi + 0x7d34]
cmp esi, ebx
mov byte [edi + 0x294], bl
mov byte [edi + 0x295], bl
je 0x46076a
mov edx, dword [esi + 0x2040]
push ebx
push ebx
push ebx
push edx
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [esi + 0x2040]
push ebx
lea eax, [ebp - 0x6c]
push eax
push 0x2030
lea ecx, [esi + 0x10]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esi + 0x2040]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x2040], 0xffffffff
mov eax, dword [edi + 0x7d34]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, edi
mov dword [edi + 0x7d34], ebx
call fcn.0044a030
mov esi, dword [edi + 0x7d38]
cmp esi, ebx
je 0x4607d5
mov ecx, dword [esi + 0x2040]
push ebx
push ebx
push ebx
push ecx
mov dword [ebp - 0x80], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [esi + 0x2040]
push ebx
lea edx, [ebp - 0x80]
push edx
push 0x2030
lea eax, [esi + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [esi + 0x2040]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x2040], 0xffffffff
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004c1fcb
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], ebx
call fcn.0044a030
mov eax, dword [ebp - 0x60]
cmp eax, ebx
je 0x46080c
mov esi, dword [eax + 4]
cmp esi, ebx
mov dword [eax], vtable.CVideoEncoder.0
je 0x460800
call fcn.0047d9a0
mov esi, dword [ebp - 0x60]
mov eax, dword [esi + 4]
push eax
call fcn.004e0dcf
add esp, 4
mov dword [esi + 4], ebx
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.004c1fcb
add esp, 4
mov eax, dword [ebp - 0x74]
cmp eax, ebx
je 0x460843
mov esi, dword [eax + 4]
cmp esi, ebx
mov dword [eax], vtable.CVideoEncoder.0
je 0x460837
call fcn.0047d9a0
mov esi, dword [ebp - 0x74]
mov edx, dword [esi + 4]
push edx
call fcn.004e0dcf
add esp, 4
mov dword [esi + 4], ebx
mov eax, dword [ebp - 0x74]
push eax
call fcn.004c1fcb
add esp, 4
mov eax, dword [ebp - 0x164]
cmp eax, ebx
je 0x46085c
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004e0dcf
add esp, 4
mov eax, dword [ebp - 0x88]
cmp eax, ebx
je 0x46089c
mov esi, dword [eax + 4]
cmp esi, ebx
mov dword [eax], vtable.CVideoEncoder.0
je 0x46088d
call fcn.0047d9a0
mov esi, dword [ebp - 0x88]
mov edx, dword [esi + 4]
push edx
call fcn.004e0dcf
add esp, 4
mov dword [esi + 4], ebx
mov eax, dword [ebp - 0x88]
push eax
call fcn.004c1fcb
add esp, 4
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
je 0x4608b5
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004e0dcf
add esp, 4
mov eax, dword [ebp - 0x250]
cmp eax, ebx
je 0x4608ce
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004e0dcf
add esp, 4
mov eax, dword [edi + 0xc9c]
cmp eax, ebx
je 0x4608e7
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004e0dcf
add esp, 4
mov edx, dword [ebp - 0x34]
push edx
call fcn.004c1fcb
mov eax, dword [ebp - 0x94]
add esp, 4
cmp eax, ebx
je 0x46090a
lea ecx, [edi + 0xa0]
push ecx
push eax
call fcn.0046da00
mov esi, pe_nt_image_headers32
cmp dword [edi + 0x88], esi
ja 0x46093c
cmp dword [edi + 0x84], 0x160
jbe 0x46093c
mov eax, dword [ebp - 0x190]
cmp eax, ebx
je 0x46093c
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004e0dcf
add esp, 4
mov dword [edi + 0x29c], ebx
mov dword [edi + 0x298], ebx
mov byte [edi + 0x7d84], bl
mov dword [edi + 0x84], 0x160
mov dword [edi + 0x88], esi
mov byte [edi + 0x80b], bl
call fcn.004c6f68
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov edx, dword [eax + 0x20]
mov esi, dword [sym.imp.USER32.dll_PostMessageA]
lea ecx, [edi + 4]
push ecx
push ebx
push 0x1323
push edx
call esi
call fcn.004c6f68
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov ecx, dword [eax + 0x20]
push edi
push ebx
push 0x415
push ecx
call esi
lea ecx, [ebp - 0xec]
mov dword [ebp - 4], 0xffffffff
call fcn.004d1e3a
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4