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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d48cb
mov eax, dword fs:[0]
push eax
sub esp, 0x530
push ebx
push esi
push edi
mov eax, dword [0x628560]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [0x647fdc]
xor edi, edi
lea esi, [ebp - 0x130]
mov byte [ebp - 0x21], 0
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], edi
call fcn.00405920
mov ebx, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 0x16c], 5
mov dword [ebp - 0x168], edi
mov dword [ebx + 0x2ac], 1
call fcn.0044dbf0
lea ecx, [ebp - 0xe0]
call fcn.004e3c62
mov dword [ebp - 4], edi
cmp dword [ebx + 0x88], 0x120
mov dword [ebp - 0x9c], edi
ja 0x46c9aa
cmp dword [ebx + 0x84], 0x160
jbe 0x46c9aa
push 0xc
call fcn.004d3feb
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
cmp esi, edi
mov byte [ebp - 4], 1
je 0x46c9e1
mov edi, dword [ebx + 0x88]
add edi, edi
jmp 0x46c9ca
push 0xc
call fcn.004d3feb
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
cmp esi, edi
mov byte [ebp - 4], 2
je 0x46c9e1
mov edi, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
push 8
push eax
push esi
call fcn.0048b530
mov dword [esi], vtable.CJpegEncoder.0
jmp 0x46c9e3
xor esi, esi
mov byte [ebp - 4], 0
cmp dword [ebx + 0x1a8], 2
mov dword [ebp - 0xcc], esi
jne 0x46ca28
push 0x280
call fcn.004d3feb
add esp, 4
test eax, eax
je 0x46ca21
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x84]
push ecx
push edx
mov esi, eax
call fcn.0048bb20
mov dword [ebp - 0x78], eax
jmp 0x46ca6f
xor eax, eax
mov dword [ebp - 0x78], eax
jmp 0x46ca6f
push 0xc
call fcn.004d3feb
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 3
je 0x46ca66
mov eax, dword [ebx + 0x84]
mov edi, dword [ebx + 0x88]
push 0xd
push eax
push esi
call fcn.0048b530
mov dword [esi], vtable.CMpeg4Encoder.0
mov dword [esi + 4], 0
jmp 0x46ca68
xor esi, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + 4]
push 0x2c
lea esi, [ebx + 0xcb0]
push 0
push esi
mov dword [ebx + 0x1ac], ecx
call fcn.004f9940
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
add esp, 0xc
push edx
push eax
push 4
mov ebx, esi
call fcn.0048a550
add esp, 0xc
push 0x2c
lea ecx, [ebp - 0x1f8]
push 0
push ecx
call fcn.004f9940
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0x84]
add esp, 0xc
push edx
push eax
push 1
lea ebx, [ebp - 0x1f8]
call fcn.0048a550
add esp, 0xc
push 0x2c
lea ecx, [ebp - 0x250]
push 0
push ecx
call fcn.004f9940
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0x84]
add esp, 0xc
push edx
push eax
push 1
lea ebx, [ebp - 0x250]
call fcn.0048a550
xor eax, eax
add esp, 0xc
push 0x2c
lea ecx, [ebp - 0x1f8]
push eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xe4], eax
mov byte [ebp - 0x2a], al
lea edi, [esi + 0xcdc]
lea eax, [ebp - 0x2e8]
mov edx, ebx
mov ecx, 0xb
lea esi, [ebp - 0x1f8]
push eax
mov dword [ebp - 0x7c], edx
rep movsd dword es:[edi], dword [esi]
call fcn.004f9940
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
add esp, 0xc
push ecx
add edx, edx
push edx
push 1
lea ebx, [ebp - 0x2e8]
call fcn.0048a550
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x2bc]
push 0
push eax
call fcn.004f9940
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
add esp, 0xc
push ecx
add edx, edx
push edx
push 1
lea ebx, [ebp - 0x2bc]
call fcn.0048a550
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x1a0]
push 0
push eax
call fcn.004f9940
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
add esp, 0xc
push ecx
push edx
push 1
lea ebx, [ebp - 0x1a0]
call fcn.0048a550
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x224]
push 0
push eax
mov dword [ebp - 0x68], 0
call fcn.004f9940
mov eax, dword [esi + 0x88]
add esp, 0xc
cmp eax, 0x120
mov dword [ebp - 0xf0], 0xffffffff
ja 0x46cc38
mov ecx, dword [esi + 0x84]
cmp ecx, 0x160
jbe 0x46cc38
lea edx, [eax + eax]
push edx
push ecx
push 1
lea ebx, [ebp - 0x224]
call fcn.0048a550
add esp, 0xc
mov eax, 0x160
cmp eax, dword [esi + 0x84]
sbb eax, eax
and eax, 0x20000
add eax, 0x30000
push eax
mov dword [ebp - 0xa8], eax
call fcn.004d4016
add esp, 4
mov dword [ebp - 0x34], eax
call fcn.0047baf0
mov edx, dword [esi + 0x84]
push esi
lea ecx, [esi + 0xa8]
push ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [esi + 0x88]
push ecx
push edx
mov ebx, eax
mov dword [ebp - 0x84], eax
call fcn.0047c6b0
push 0x48
xor ebx, ebx
lea eax, [ebp - 0x480]
push ebx
push eax
call fcn.004f9940
mov ecx, dword [esi + 0x84]
mov edx, dword [esi + 0x88]
add esp, 0xc
lea edi, [ebp - 0x484]
mov dword [ebp - 0x484], ecx
mov dword [ebp - 0x480], edx
call fcn.0049b000
push 0x48
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.004f9940
mov ecx, dword [esi + 0x84]
mov edx, dword [esi + 0x88]
add ecx, ecx
add esp, 0xc
lea edi, [ebp - 0x434]
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x430], edx
call fcn.0049b000
push 0x64
lea eax, [ebp - 0x3c8]
push ebx
push eax
call fcn.004f9940
mov ecx, dword [esi + 0x84]
mov edx, dword [esi + 0x88]
add esp, 0xc
lea esi, [ebp - 0x3cc]
mov dword [ebp - 0x3cc], ecx
mov dword [ebp - 0x3c8], edx
mov dword [ebp - 0x3b4], ebx
mov dword [ebp - 0x3b0], 1
call fcn.0049b4e0
push 0x64
lea eax, [ebp - 0x360]
push ebx
push eax
call fcn.004f9940
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x84]
mov edx, dword [edi + 0x88]
add ecx, ecx
add esp, 0xc
lea esi, [ebp - 0x364]
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x360], edx
mov dword [ebp - 0x34c], ebx
mov dword [ebp - 0x348], 1
call fcn.0049b4e0
mov eax, dword [edi + 0x84]
mov edx, eax
mov dword [ebp - 0x2fc], edx
mov ecx, dword [edi + 0x88]
mov dword [ebp - 0x2f8], ecx
add edx, 0x10
shr eax, 1
shr ecx, 1
push edx
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], ecx
call fcn.004f2efe
add esp, 4
cmp eax, ebx
je 0x46cdd9
lea ecx, [eax + 0xf]
and ecx, 0xfffffff0
cmp ecx, eax
jne 0x46cdd0
add ecx, 0x10
mov dl, cl
sub dl, al
mov byte [ecx - 1], dl
jmp 0x46cddb
xor ecx, ecx
mov eax, dword [0x647fd8]
push 0x2c
mov dword [ebp - 0x2ec], ecx
lea ecx, [ebp - 0x15c]
push ebx
push ecx
mov dword [ebp - 0x6c], eax
call fcn.004f9940
mov edx, dword [edi + 0x88]
mov eax, dword [edi + 0x84]
add esp, 0xc
shr edx, 1
push edx
shr eax, 1
push eax
push 1
lea ebx, [ebp - 0x15c]
call fcn.0048a550
add esp, 0xc
push 0xc
call fcn.004d3feb
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 4
je 0x46ce5d
mov eax, dword [edi + 0x88]
mov edi, dword [edi + 0x84]
shr edi, 1
push 8
push edi
shr eax, 1
push esi
mov edi, eax
call fcn.0048b530
mov edi, dword [ebp + 8]
mov dword [esi], vtable.CJpegEncoder.0
jmp 0x46ce5f
xor esi, esi
mov byte [ebp - 4], 0
cmp dword [edi + 0x7d9c], 0
mov dword [ebp - 0xf8], esi
mov dword [edi + 0xde0], 0
mov byte [edi + 0xde4], 0
je 0x46cea8
cmp dword [edi + 0x84], 0x160
ja 0x46cea1
cmp dword [edi + 0x198], 0
jne 0x46cea8
cmp dword [edi + 0x7cf8], 5
jae 0x46cea8
mov ebx, 1
jmp 0x46ceaa
xor ebx, ebx
xor esi, esi
push 0x2c
lea ecx, [ebp - 0x1cc]
push esi
push ecx
mov byte [edi + 0x7da0], bl
mov dword [ebp - 0x98], esi
call fcn.004f9940
add esp, 0xc
test bl, bl
mov byte [ebp - 0x29], 0
mov dword [ebp - 0xfc], esi
jne 0x46cf01
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0x88]
mov ecx, dword [edi + 0x7cf8]
mov dword [edi + 0x90], edx
mov dword [edi + 0x94], eax
mov dword [edi + 0x98], ecx
jmp 0x46d060
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46cf14
shr eax, 1
mov byte [ebp - 0x29], 1
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x88]
cmp eax, 0x120
jbe 0x46cf2d
shr eax, 1
or byte [ebp - 0x29], 2
mov dword [edi + 0x94], eax
mov eax, dword [edi + 0x7cf8]
cmp eax, 5
jae 0x46cf4a
mov dword [edi + 0x98], 6
jmp 0x46cf58
cmp eax, 8
jae 0x46cf52
add eax, 2
mov dword [edi + 0x98], eax
cmp dword [edi + 0x1a8], 2
jne 0x46cf9f
push 0x280
call fcn.004d3feb
add esp, 4
cmp eax, esi
je 0x46cf92
mov edx, dword [edi + 0x88]
mov ecx, dword [edi + 0x84]
push edx
push ecx
mov esi, eax
call fcn.0048bb20
mov dword [ebp - 0x98], eax
jmp 0x46d02a
xor eax, eax
mov dword [ebp - 0x98], eax
jmp 0x46d02a
push 0xc
call fcn.004d3feb
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 5
je 0x46cfe2
mov eax, dword [edi + 0x88]
mov edi, dword [edi + 0x84]
push 0xd
push edi
push esi
mov edi, eax
call fcn.0048b530
mov edi, dword [ebp + 8]
mov dword [esi], vtable.CMpeg4Encoder.0
mov dword [esi + 4], 0
jmp 0x46cfe4
xor esi, esi
push 0
push 0x62c404
push 0x62c2d0
push 0
push esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x98], esi
call fcn.004f4036
add esp, 0x14
test eax, eax
je 0x46d02a
mov edx, dword [eax + 8]
mov dword [edx + 0x70], 7
mov ecx, dword [eax + 8]
mov dword [ecx + 0x74], 0x10
mov edx, dword [eax + 8]
mov dword [edx + 0x370], 0xc80
mov eax, dword [edi + 0x94]
mov ecx, dword [edi + 0x90]
push eax
push ecx
push 1
lea ebx, [ebp - 0x1cc]
call fcn.0048a550
mov eax, dword [edi + 0x90]
imul eax, dword [edi + 0x94]
lea eax, [eax + eax*2]
add esp, 0xc
shr eax, 1
mov dword [ebp - 0xfc], eax
mov esi, dword [edi + 0x198]
lea edx, [esi + 1]
test edx, edx
mov dword [ebp - 0x88], edx
fild dword [ebp - 0x88]
jge 0x46d07f
fadd qword [0x610f30]
fld qword [0x610ed0]
fmul st(1)
fadd qword [0x5e21c8]
fdivrp st(1)
call fcn.004fbc30
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x104], eax
jne 0x46d0aa
mov dword [ebp - 0x104], 1
mov eax, dword [edi + 0x7cf4]
cmp eax, 0xa
jge 0x46d0c1
mov dword [ebp - 0xac], 0x49a640
jmp 0x46d111
cmp eax, 0x64
jne 0x46d0d2
mov dword [ebp - 0xac], 0x49a370
jmp 0x46d111
cmp eax, 0x12c
jne 0x46d0e5
mov dword [ebp - 0xac], 0x49a640
jmp 0x46d111
cmp eax, 0x190
jne 0x46d0f8
mov dword [ebp - 0xac], 0x49a640
jmp 0x46d111
xor ecx, ecx
cmp eax, 0x1f4
setne cl
sub ecx, 1
and ecx, 0x49a640
mov dword [ebp - 0xac], ecx
cmp dword [edi + 0x88], 0x120
jbe 0x46d124
mov eax, 1
jmp 0x46d134
mov edx, 0x160
cmp edx, dword [edi + 0x84]
sbb eax, eax
and eax, 2
mov ecx, dword [edi + 0xd18]
mov edx, dword [edi + 0x18c]
push ecx
mov ecx, dword [edi + 0x188]
push edx
mov edx, dword [edi + 0x184]
push ecx
mov ecx, dword [edi + 0x180]
push edx
mov edx, dword [edi + 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 [edi + 0xd18]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_StartChannel_int_]
add esp, 0x24
test eax, eax
jl 0x470b00
cmp dword [edi + 0x7d94], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0xd0], ebx
je 0x46d1b4
cmp byte [edi + 0x823], 0
je 0x46d1b4
push ebx
push ebx
push edi
push 0x467580
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x7d00], eax
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 6
push ecx
mov edx, dword [ebp - 0x84]
call fcn.0047ccb0
jmp 0x46d1d0
mov edx, dword [ebp - 0xac]
mov eax, dword [edi + 0xd18]
push edx
mov edx, dword [ebp - 0x18]
push eax
mov eax, dword [edx]
lea ecx, [ebp - 0x94]
push ecx
push 0
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_GetVideo_unsigned_char___enum_COLORFORMAT__unsigned_long_long_unsigned___int64____int__void__]
add esp, 0x14
test eax, eax
mov dword [ebp - 0x70], eax
jge 0x46d209
mov dword [ebp - 4], 0
jmp 0x470ae8
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
push 0
push 0x2710
push ecx
push edx
call fcn.00500d80
push 0
push 0x5265c00
push edx
push eax
call fcn.005ca660
mov dword [ebp - 0x74], eax
mov eax, dword [edi + 0x2b4]
test al, 2
je 0x46d247
and eax, 0xfffffffd
mov dword [edi + 0x2b4], eax
mov eax, dword [edi + 0x2b4]
test al, 8
je 0x46d4a5
and eax, 0xfffffff7
xor ebx, ebx
cmp dword [ebp - 0x9c], ebx
mov dword [edi + 0x2b4], eax
je 0x46d2c5
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x7c]
cmp dword [ecx - 0xc], ebx
jne 0x46d27b
mov ebx, 1
lea esi, [ebp - 0x48c]
call fcn.00405920
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xec], ecx
sub ecx, dword [ebp - 0x130]
mov dword [ebp - 0xe8], eax
sbb eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0x168]
jl 0x46d49b
jg 0x46d2bd
cmp ecx, dword [ebp - 0x16c]
jbe 0x46d49b
test ebx, ebx
jne 0x46d49b
mov eax, dword [edi + 0x88]
cmp eax, 0x120
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x68], edx
ja 0x46d30b
mov ecx, dword [edi + 0x84]
cmp ecx, 0x160
jbe 0x46d30b
mov ebx, dword [ebp - 0x18]
lea edx, [ebp - 0x224]
push edx
call fcn.00499bc0
lea eax, [ebp - 0x224]
add esp, 4
mov dword [ebp - 0x204], 1
mov dword [ebp - 0x68], eax
cmp byte [ebp - 0x21], 0
je 0x46d33c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x1a0]
push 0x120
push 0x160
push eax
push edx
call dword [0x679a5c]
add esp, 0x10
emms
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 0
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x68]
push eax
call edx
mov dword [ebp - 0x28], eax
call fcn.004d4cf7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46d377
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], 7
mov ecx, esp
mov dword [ebp - 0x30], esp
push 0x60518f
call fcn.0041c4a0
lea ecx, [ebp - 0x164]
push ecx
push edi
call fcn.0044cf70
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.00404ec0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x164]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46d3da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x20]
push 0x60ca8c
push ebx
call fcn.004f621a
mov esi, eax
add esp, 8
test esi, esi
je 0x46d40a
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
push esi
push ecx
push 1
push edx
call fcn.004f680f
push esi
call fcn.004f6518
add esp, 0x14
cmp dword [ebp - 0x9c], 0
je 0x46d463
call fcn.00459e20
test eax, eax
je 0x46d463
call fcn.00484f20
push ecx
mov dword [ebp - 0x28], eax
lea eax, [ebx - 0x10]
mov dword [ebp - 0x9c], esp
mov esi, esp
push eax
call fcn.004052b0
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov eax, dword [ebp - 0xa4]
push ecx
mov byte [ebp - 4], 9
add eax, 0x7c
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.00404e80
mov esi, dword [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00485220
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xe8]
lea eax, [ebx - 0x10]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], edx
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46d49b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 0x9c], 0
mov eax, dword [edi + 0x2b4]
test al, al
jns 0x46d50a
and eax, 0xffffff7f
cmp byte [edi + 0x2a9], 0
mov dword [edi + 0x2b4], eax
mov dword [ebp - 0xd0], 0
je 0x46d503
mov esi, dword [edi + 0x7d3c]
test esi, esi
je 0x46d4fc
call fcn.0048aef0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], 0
call fcn.0044c6f0
mov byte [edi + 0x2a9], 0
mov esi, edi
call fcn.0044dbf0
mov eax, dword [edi + 0x2b4]
test al, 0x40
je 0x46d563
and eax, 0xffffffbf
cmp byte [edi + 0x2a8], 0
mov dword [edi + 0x2b4], eax
je 0x46d55c
mov esi, dword [edi + 0x7d38]
test esi, esi
je 0x46d555
call fcn.0048aef0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], 0
call fcn.0044c6f0
mov byte [edi + 0x2a8], 0
mov esi, edi
call fcn.0044dbf0
mov eax, dword [edi + 0x2b4]
test al, 0x20
je 0x46d7c8
and eax, 0xffffffdf
cmp byte [edi + 0x2a9], 0
mov dword [edi + 0x2b4], eax
mov dword [ebp - 0xd0], 1
jne 0x46d7b8
mov esi, dword [edi + 0x7d3c]
test esi, esi
je 0x46d5c0
call fcn.0048aef0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], 0
call fcn.0044c6f0
lea ecx, [ebp - 0x128]
push 0x648a74
push ecx
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d5e5
mov eax, dword [ebp - 0x114]
add eax, 0x76c
jmp 0x46d5e7
xor eax, eax
lea edx, [ebp - 0x128]
push 0x648a74
push edx
mov word [ebp - 0xc4], ax
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d611
mov eax, dword [ebp - 0x118]
add eax, 1
jmp 0x46d613
xor eax, eax
mov byte [ebp - 0xc2], al
lea eax, [ebp - 0x128]
push 0x648a74
push eax
call fcn.004f3a11
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x11c]
lea ecx, [ebp - 0x128]
push 0x648a74
push ecx
mov byte [ebp - 0xc1], al
call fcn.004f3a11
add esp, 0x10
test eax, eax
jne 0x46d65c
mov eax, dword [ebp - 0x120]
jmp 0x46d65f
or eax, 0xffffffff
lea edx, [ebp - 0x128]
push 0x648a74
push edx
mov byte [ebp - 0xc0], al
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d685
mov eax, dword [ebp - 0x124]
jmp 0x46d688
or eax, 0xffffffff
mov byte [ebp - 0xbf], al
lea eax, [ebp - 0x128]
push 0x648a74
push eax
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d6ae
mov eax, dword [ebp - 0x128]
jmp 0x46d6b1
or eax, 0xffffffff
push 0x3048
mov byte [ebp - 0xbe], al
mov byte [ebp - 0xbd], 0
call fcn.004d3feb
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
add esp, 4
push ecx
movzx ecx, byte [edi + 0xa0]
push edx
movzx edx, byte [edi + 0x9c]
mov ebx, eax
movzx eax, byte [edi + 0x1b4]
push eax
movzx eax, word [edi + 0x9e]
push ecx
movzx ecx, byte [edi + 0x1ac]
push edx
movzx edx, byte [edi + 0x7cf8]
push eax
mov eax, dword [edi + 0x198]
push ecx
movzx ecx, byte [edi + 0xd58]
push edx
mov edx, dword [edi + 0x88]
add eax, 1
push eax
mov eax, dword [edi + 0x84]
push ecx
push edx
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.alarm_
mov dword [edi + 0x7d3c], ebx
call fcn.0041c4a0
push edi
lea ecx, [ebp - 0x160]
call fcn.0044c980
mov esi, eax
mov byte [ebp - 4], 0xa
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x46d769
mov ecx, dword [eax + 4]
push ecx
mov ecx, esi
call fcn.00405490
mov esi, dword [esi]
push esi
mov esi, ebx
call fcn.0048ad90
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x160]
add eax, 0xfffffff0
add esp, 0x34
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46d79c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x74]
mov dword [edi + 0xde0], 1
mov byte [edi + 0x2a9], 1
mov dword [ebp - 0xb4], ecx
jmp 0x46d7c1
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0xb4], edx
mov esi, edi
call fcn.0044dbf0
mov eax, dword [edi + 0x2b4]
test al, 0x10
je 0x46da19
and eax, 0xffffffef
cmp byte [edi + 0x2a8], 0
mov dword [edi + 0x2b4], eax
jne 0x46da12
mov esi, dword [edi + 0x7d38]
test esi, esi
je 0x46d81b
call fcn.0048aef0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], 0
call fcn.0044c6f0
lea eax, [ebp - 0x128]
push 0x648a74
push eax
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d840
mov eax, dword [ebp - 0x114]
add eax, 0x76c
jmp 0x46d842
xor eax, eax
lea ecx, [ebp - 0x128]
push 0x648a74
push ecx
mov word [ebp - 0xbc], ax
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d86c
mov eax, dword [ebp - 0x118]
add eax, 1
jmp 0x46d86e
xor eax, eax
lea edx, [ebp - 0x128]
push 0x648a74
push edx
mov byte [ebp - 0xba], al
call fcn.004f3a11
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x11c]
push 0x648a74
mov byte [ebp - 0xb9], al
lea eax, [ebp - 0x128]
push eax
call fcn.004f3a11
add esp, 0x10
test eax, eax
jne 0x46d8b7
mov eax, dword [ebp - 0x120]
jmp 0x46d8ba
or eax, 0xffffffff
lea ecx, [ebp - 0x128]
push 0x648a74
push ecx
mov byte [ebp - 0xb8], al
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d8e0
mov eax, dword [ebp - 0x124]
jmp 0x46d8e3
or eax, 0xffffffff
lea edx, [ebp - 0x128]
push 0x648a74
push edx
mov byte [ebp - 0xb7], al
call fcn.004f3a11
add esp, 8
test eax, eax
jne 0x46d909
mov eax, dword [ebp - 0x128]
jmp 0x46d90c
or eax, 0xffffffff
push 0x3048
mov byte [ebp - 0xb6], al
mov byte [ebp - 0xb5], 0
call fcn.004d3feb
movzx edx, byte [edi + 0x1b4]
mov ecx, dword [ebp - 0xbc]
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0xb8]
push eax
movzx eax, byte [edi + 0xa0]
push ecx
movzx ecx, byte [edi + 0x9c]
push edx
movzx edx, word [edi + 0x9e]
push eax
movzx eax, byte [edi + 0x1ac]
push ecx
movzx ecx, byte [edi + 0x7cf8]
push edx
mov edx, dword [edi + 0x198]
push eax
movzx eax, byte [edi + 0xd58]
push ecx
mov ecx, dword [edi + 0x88]
add edx, 1
push edx
mov edx, dword [edi + 0x84]
push eax
push ecx
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x60518f
mov dword [edi + 0x7d38], ebx
call fcn.0041c4a0
push edi
lea ecx, [ebp - 0x174]
call fcn.0044c980
mov esi, eax
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x46d9c4
mov eax, dword [eax + 4]
push eax
mov ecx, esi
call fcn.00405490
mov esi, dword [esi]
push esi
mov esi, ebx
call fcn.0048ad90
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x174]
add eax, 0xfffffff0
add esp, 0x34
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46d9f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [edi + 0xde0], 1
mov dword [ebp - 0xb0], 0
mov byte [edi + 0x2a8], 1
mov esi, edi
call fcn.0044dbf0
cmp dword [edi + 0x7d98], 0
je 0x46da88
cmp dword [ebp - 0xd0], 0
je 0x46da79
mov edx, dword [ebp - 0xf0]
lea ecx, [ebp - 0xc8]
push ecx
mov esi, 1
push edx
mov dword [ebp - 0xc8], esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [ebp - 0xc8], esi
jne 0x46da88
push 0
push 0
push 0
push 0x46c820
push 0
push 0
mov dword [ebp - 0xc8], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xf0], eax
jmp 0x46da88
push 1
push 0
push 0x60518f
call dword [sym.imp.WINMM.dll_PlaySoundA]
mov eax, dword [ebp - 0x70]
cmp eax, 1
jne 0x46da9c
lea eax, [edi + 0xa8]
push eax
jmp 0x46d1bc
cmp eax, 2
jne 0x46dae9
cmp byte [ebp - 0x21], 0
jne 0x46db2e
mov ecx, dword [edi + 0x88]
mov ebx, dword [ebp - 0x84]
lea eax, [edi + 0xa8]
mov edi, dword [edi + 0x84]
push ecx
add edi, edi
mov byte [ebp - 0x21], 1
call fcn.0047ca00
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x2e8]
lea eax, [ebp - 0x2bc]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x7c], eax
jmp 0x46d1d0
test eax, eax
jne 0x46db2e
cmp byte [ebp - 0x21], 1
jne 0x46db2e
mov ecx, dword [edi + 0x88]
mov ebx, dword [ebp - 0x84]
mov byte [ebp - 0x21], al
lea eax, [edi + 0xa8]
mov edi, dword [edi + 0x84]
push ecx
call fcn.0047ca00
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 0x250]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x7c], eax
jmp 0x46d1d0
mov esi, dword [ebp - 0x18]
add dword [ebp - 0x80], 1
cmp dword [edi + 0x7cf4], 0xa
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [edi + 0xcdc], eax
mov dword [edi + 0xce0], ecx
mov dword [edi + 0xce4], edx
jge 0x46dbe5
mov ecx, dword [edi + 0x84]
cmp ecx, 0x160
jbe 0x46dbe5
add ecx, ecx
add ecx, ecx
cmp dword [edi + 0x88], 0x120
jbe 0x46dba9
add ecx, ecx
push ecx
push 0
push eax
call fcn.004f9940
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0xce0]
add esp, 0xc
add edx, edx
push edx
push 0x7f
push eax
call fcn.004f9940
mov ecx, dword [edi + 0x84]
add ecx, ecx
jmp 0x46dbd0
push ecx
push 0
push eax
call fcn.004f9940
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0xce0]
add esp, 0xc
push edx
push 0x7f
push eax
call fcn.004f9940
mov ecx, dword [edi + 0x84]
mov edx, dword [edi + 0xce4]
add esp, 0xc
push ecx
push 0x7f
push edx
call fcn.004f9940
add esp, 0xc
cmp dword [edi + 0x88], 0x120
jbe 0x46dc07
cmp dword [edi + 0x1c8], 0
je 0x46dc07
mov eax, dword [esi]
lea esi, [ebp - 0x2fc]
call fcn.00499e50
cmp byte [ebp - 0x21], 0
mov eax, dword [edi + 0x1d0]
jne 0x46ed64
movzx ecx, byte [ebp - 0x2a]
cmp eax, ecx
je 0x46dc25
test eax, eax
setne byte [ebp - 0x2a]
cmp dword [edi + 0xdf0], 0
je 0x46df93
mov eax, dword [edi + 0x88]
cmp eax, 0x120
ja 0x46de87
cmp dword [edi + 0x84], 0x160
ja 0x46dd63
cmp dword [edi + 0xd48], 0
jle 0x46df93
mov eax, dword [edi + 0xd48]
mov esi, dword [edi + 0xd50]
cdq
sub eax, edx
mov ebx, eax
mov eax, esi
sub esi, dword [edi + 0xd48]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [edi + 0xd4c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x28c], eax
mov eax, dword [edi + 0xd54]
cdq
sar ebx, 1
sar ecx, 1
sub eax, edx
add esi, 1
sar eax, 1
sub ecx, ebx
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [edi + 0xd4c]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x20], ecx
cmp esi, dword [edi + 0xd54]
jg 0x46dce8
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x28]
imul eax, esi
add eax, dword [edi + 0xd48]
mov ecx, dword [ebp - 0x18]
add eax, dword [ecx]
push edx
push 0x23
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46dcb8
mov esi, dword [ebp - 0x28c]
mov edi, edi
cmp esi, dword [ebp - 0x284]
jg 0x46dd22
mov eax, dword [edi + 0x84]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
shr eax, 1
imul eax, esi
add eax, dword [ecx + 4]
push edx
add eax, ebx
push 0xd4
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46dcf0
mov esi, dword [ebp - 0x28c]
jmp 0x46dd30
cmp esi, dword [ebp - 0x284]
jg 0x46df93
mov eax, dword [edi + 0x84]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
shr eax, 1
imul eax, esi
add eax, dword [ecx + 8]
push edx
add eax, ebx
push 0x72
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46dd30
cmp eax, 0x120
ja 0x46de87
cmp dword [edi + 0x84], 0x2c0
ja 0x46de87
cmp dword [edi + 0xd48], 0
jle 0x46df93
mov eax, dword [edi + 0xd48]
mov ecx, dword [edi + 0xd50]
lea ebx, [eax + eax]
mov eax, dword [edi + 0xd4c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x26c], eax
mov eax, dword [edi + 0xd54]
lea esi, [ecx + ecx]
sub ecx, dword [edi + 0xd48]
cdq
sub esi, ebx
sub eax, edx
add esi, 1
sar eax, 1
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [edi + 0xd4c]
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x20], ecx
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46de0c
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x28]
imul eax, esi
mov ecx, dword [ebp - 0x18]
push edx
add eax, ebx
add eax, dword [ecx]
push 0x23
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46dde0
mov esi, dword [ebp - 0x26c]
cmp esi, dword [ebp - 0x264]
jg 0x46de48
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
shr eax, 1
imul eax, esi
add eax, dword [edi + 0xd48]
push edx
add eax, dword [ecx + 4]
push 0xd4
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46de12
mov esi, dword [ebp - 0x26c]
mov edi, edi
cmp esi, dword [ebp - 0x264]
jg 0x46df93
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
shr eax, 1
imul eax, esi
add eax, dword [edi + 0xd48]
push edx
add eax, dword [ecx + 8]
push 0x72
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46de50
cmp eax, 0x240
ja 0x46df93
cmp dword [edi + 0x84], 0x2c0
ja 0x46df93
mov eax, dword [edi + 0xd48]
test eax, eax
jle 0x46df93
mov edx, dword [edi + 0xd4c]
mov esi, dword [edi + 0xd54]
lea ebx, [eax + eax]
mov eax, dword [edi + 0xd50]
lea ecx, [eax + eax]
sub eax, dword [edi + 0xd48]
sub ecx, ebx
add esi, esi
add edx, edx
add ecx, 1
add eax, 1
mov dword [ebp - 0x4a0], esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], eax
mov esi, edx
cmp esi, dword [ebp - 0x4a0]
jg 0x46df14
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x28]
imul eax, esi
mov ecx, dword [ebp - 0x18]
push edx
add eax, ebx
add eax, dword [ecx]
push 0x23
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46dee8
mov esi, dword [edi + 0xd4c]
lea ebx, [ebx]
cmp esi, dword [edi + 0xd54]
jg 0x46df56
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
shr eax, 1
imul eax, esi
add eax, dword [edi + 0xd48]
push edx
add eax, dword [ecx + 4]
push 0xd4
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46df20
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46df93
mov eax, dword [edi + 0x84]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
shr eax, 1
imul eax, esi
add eax, dword [edi + 0xd48]
push edx
add eax, dword [ecx + 8]
push 0x72
push eax
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46df60
cmp byte [edi + 0x820], 1
jne 0x46e19a
mov eax, dword [ebp - 0x80]
xor edx, edx
div dword [ebp - 0x104]
test edx, edx
jne 0x46e19a
mov eax, dword [edi + 0xd20]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x3b4], 1
jne 0x46dfd5
mov dword [ebp - 0x3a8], 4
jmp 0x46dff5
cmp eax, 1
jne 0x46dfe6
mov dword [ebp - 0x3a8], 0x14
jmp 0x46dff5
cmp eax, 2
jne 0x46dff5
mov dword [ebp - 0x3a8], 0x64
mov edx, dword [edi + 0xd2c]
mov esi, dword [edi + 0xd24]
cmp edx, esi
jle 0x46e0bd
mov eax, dword [edi + 0xd30]
mov ecx, dword [edi + 0xd28]
cmp eax, ecx
jle 0x46e0bd
mov ebx, dword [edi + 0x88]
cmp ebx, 0x120
ja 0x46e086
cmp dword [edi + 0x84], 0x160
ja 0x46e054
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x3a0], edx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], eax
jmp 0x46e0e1
cmp ebx, 0x120
ja 0x46e086
cmp dword [edi + 0x84], 0x2c0
ja 0x46e086
add esi, esi
add edx, edx
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x3a0], edx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], eax
jmp 0x46e0e1
cmp ebx, 0x240
ja 0x46e0e1
cmp dword [edi + 0x84], 0x2c0
ja 0x46e0e1
add edx, edx
add esi, esi
mov dword [ebp - 0x3a0], edx
add ecx, ecx
lea edx, [eax + eax]
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], edx
jmp 0x46e0e1
mov eax, dword [edi + 0x84]
mov ecx, dword [edi + 0x88]
mov dword [ebp - 0x3a4], ebx
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], ebx
mov dword [ebp - 0x398], ecx
mov edx, dword [ebp - 0x18]
push edx
lea eax, [ebp - 0x3cc]
push eax
call fcn.0049b150
mov ecx, dword [ebp - 0x3ac]
add esp, 8
cmp ecx, dword [ebp - 0x3a8]
jle 0x46e19a
cmp byte [edi + 0x820], 0
je 0x46e116
or dword [edi + 0x2b4], 0x20
cmp dword [edi + 0xd34], 0
je 0x46e15e
cmp dword [edi + 0x284], 0
je 0x46e15e
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xf4]
mov eax, ecx
sub eax, edx
cmp ecx, edx
jae 0x46e13e
add eax, 0x5265c00
cmp eax, 0x1770
jbe 0x46e161
or dword [edi + 0x2b4], 8
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x9c], 1
jmp 0x46e161
mov ecx, dword [ebp - 0x74]
cmp dword [edi + 0x7d98], 0
je 0x46e19a
cmp dword [edi + 0x284], 0
je 0x46e19a
mov edx, dword [ebp - 0x100]
mov eax, ecx
sub eax, edx
cmp ecx, edx
jae 0x46e186
add eax, 0x5265c00
cmp eax, 0x1770
jbe 0x46e19a
mov dword [ebp - 0x100], ecx
mov byte [0x647fb9], 1
cmp dword [edi + 0x1b8], 1
jne 0x46e1bb
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x18]
push edx
lea edi, [ebp - 0x484]
call fcn.0049afa0
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0xa4]
cmp dword [eax + 0x24], 0
je 0x46eafc
call fcn.004d4cf7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46e1e5
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 - 0x30], eax
lea esi, [ebp - 0x3d8]
mov byte [ebp - 4], 0xc
call fcn.00405920
mov ecx, esi
push ecx
mov esi, str._y__m__d__H:_M:_S
lea edi, [ebp - 0x170]
call fcn.00405aa0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xd
call fcn.00404ec0
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x170]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46e249
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x28], edx
xor eax, eax
cmp eax, dword [ebp - 0x28]
jge 0x46ead9
xor ebx, ebx
cmp eax, ebx
jl 0x46eacf
cmp eax, dword [ecx - 0xc]
jg 0x46eacf
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x88]
cmp edx, 0x240
mov cl, byte [eax + ecx]
jne 0x46e3e4
cmp dword [edi + 0x84], 0x2c0
jne 0x46e3e4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e2ae.33
movzx ecx, byte [ecx + 0x470e2c]
jmp dword [ecx*4 + 0x470df4]
mov dword [ebp - 0x3c], 0x644e40
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x645140
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x6428c0
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x641780
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x642380
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x642080
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x644780
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x642f80
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x641c00
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x644a80
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x644300
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x641480
jmp case.0x46e2ae.33
mov dword [ebp - 0x3c], 0x643e80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx ebx, byte [esi + edx + 0x389a]
movzx ecx, byte [esi + edx + 0x38a9]
add ecx, ebx
movzx ebx, byte [esi + edx + 0xb9e9]
movzx edx, byte [esi + edx + 0xb9da]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46e36e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e388
cmp ecx, 0x60
jge 0x46e381
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e388
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46eac4
xor ecx, ecx
jmp 0x46e3a0
cmp ecx, 0x10
jge 0x46e3df
mov ebx, dword [ebp - 0x3c]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46e3da
mov bl, byte [ebp - 0x1c]
add edx, 0x14
imul edx, dword [edi + 0x84]
add edx, ecx
mov esi, eax
shl esi, 4
add esi, edx
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
mov byte [esi + edx + 0x19a], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46e3a0
add edx, 1
jmp 0x46e38d
cmp edx, 0x120
jne 0x46e6ac
cmp dword [edi + 0x84], 0x2c0
jne 0x46e54f
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e416.33
movzx ecx, byte [ecx + 0x470e80]
jmp dword [ecx*4 + 0x470e48]
mov dword [ebp - 0x5c], 0x643d00
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x643940
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x644600
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x6437c0
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x643b80
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x643400
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x641300
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x642c80
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x643280
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x642740
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x644180
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x643640
jmp case.0x46e416.33
mov dword [ebp - 0x5c], 0x641a80
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx]
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 0x46e4e2
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46e4ff
cmp ecx, 0x60
jge 0x46e4f5
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e4fc
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46eac4
xor ecx, ecx
nop
cmp ecx, 8
jge 0x46e54a
mov ebx, dword [ebp - 0x5c]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e545
mov bl, byte [ebp - 0x1c]
add edx, 0xc
imul edx, dword [edi + 0x84]
lea esi, [eax + eax*2]
add edx, ecx
lea edx, [edx + esi*4]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov byte [edx + esi + 0x1cc], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46e510
add edx, 1
jmp 0x46e501
cmp edx, 0x120
jne 0x46e6ac
cmp dword [edi + 0x84], 0x160
jne 0x46e6ac
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e581.33
movzx ecx, byte [ecx + 0x470ed4]
jmp dword [ecx*4 + 0x470e9c]
mov dword [ebp - 0x64], 0x643580
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x6455c0
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x643ac0
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x641fc0
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x642680
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x645500
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x642ec0
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x641240
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x644d80
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x642e00
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x642bc0
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x645440
jmp case.0x46e581.33
mov dword [ebp - 0x64], 0x641f00
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
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 0x46e63d
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46e65a
cmp ecx, 0x60
jge 0x46e650
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e657
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x18
mov dword [ebp - 0x20], edx
jge 0x46eac4
xor ecx, ecx
lea ebx, [ebx]
cmp ecx, 8
jge 0x46e6a7
mov ebx, dword [ebp - 0x64]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e6a2
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov bl, byte [ebp - 0x1c]
add edx, 5
imul edx, dword [edi + 0x84]
add edx, ecx
lea edx, [edx + eax*8]
mov byte [edx + esi + 0xcd], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46e670
add edx, 1
jmp 0x46e65c
cmp edx, 0x1e0
jne 0x46e814
cmp dword [edi + 0x84], 0x280
jne 0x46e814
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e6de.33
movzx ecx, byte [ecx + 0x470f28]
jmp dword [ecx*4 + 0x470ef0]
mov dword [ebp - 0x40], 0x644e40
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x645140
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x6428c0
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x641780
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x642380
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x642080
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x644780
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x642f80
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x641c00
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x644a80
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x644300
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x641480
jmp case.0x46e6de.33
mov dword [ebp - 0x40], 0x643e80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx ebx, byte [esi + edx + 0x3354]
movzx ecx, byte [esi + edx + 0x3363]
add ecx, ebx
movzx ebx, byte [esi + edx + 0xa8e3]
movzx edx, byte [esi + edx + 0xa8d4]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46e79e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e7b8
cmp ecx, 0x60
jge 0x46e7b1
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e7b8
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46eac4
xor ecx, ecx
jmp 0x46e7d0
cmp ecx, 0x10
jge 0x46e80f
mov ebx, dword [ebp - 0x40]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46e80a
mov bl, byte [ebp - 0x1c]
add edx, 0x14
imul edx, dword [edi + 0x84]
add edx, ecx
mov esi, eax
shl esi, 4
add esi, edx
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
mov byte [esi + edx + 0x154], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46e7d0
add edx, 1
jmp 0x46e7bd
cmp edx, 0xf0
jne 0x46eac4
cmp dword [edi + 0x84], 0x280
jne 0x46e974
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e846.33
movzx ecx, byte [ecx + 0x470f7c]
jmp dword [ecx*4 + 0x470f44]
mov dword [ebp - 0x54], 0x643d00
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x643940
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x644600
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x6437c0
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x643b80
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x643400
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x641300
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x642c80
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x643280
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x642740
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x644180
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x643640
jmp case.0x46e846.33
mov dword [ebp - 0x54], 0x641a80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
movzx ebx, byte [esi + edx + 0x1a90]
movzx ecx, byte [esi + edx + 0x1a97]
add ecx, ebx
movzx ebx, byte [esi + edx + 0x9017]
movzx edx, byte [esi + edx + 0x9010]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46e908
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e922
cmp ecx, 0x60
jge 0x46e91b
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e922
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46eac4
xor ecx, ecx
cmp ecx, 8
jge 0x46e96f
mov ebx, dword [ebp - 0x54]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e96a
mov bl, byte [ebp - 0x1c]
add edx, 0xa
imul edx, dword [edi + 0x84]
lea esi, [eax + eax*2]
add edx, ecx
lea edx, [edx + esi*4]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov byte [edx + esi + 0x190], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46e935
add edx, 1
jmp 0x46e927
cmp edx, 0xf0
jne 0x46eac4
cmp dword [edi + 0x84], 0x140
jne 0x46eac4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e9a6.33
movzx ecx, byte [ecx + 0x470fd0]
jmp dword [ecx*4 + 0x470f98]
mov dword [ebp - 0x60], 0x643580
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x6455c0
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x643ac0
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x641fc0
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x642680
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x645500
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x642ec0
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x641240
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x644d80
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x642e00
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x642bc0
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x645440
jmp case.0x46e9a6.33
mov dword [ebp - 0x60], 0x641f00
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
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 0x46ea62
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46ea7f
cmp ecx, 0x60
jge 0x46ea75
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46ea7c
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor esi, esi
cmp esi, 0x18
jge 0x46eac4
xor ecx, ecx
cmp ecx, 8
jge 0x46eabf
mov ebx, dword [ebp - 0x60]
lea edx, [ecx + esi*8]
cmp byte [edx + ebx], 0
je 0x46eaba
mov bl, byte [ebp - 0x1c]
lea edx, [esi + 5]
imul edx, dword [edi + 0x84]
mov edi, dword [ebp - 0x18]
mov edi, dword [edi]
add edx, ecx
lea edx, [edx + eax*8]
mov byte [edx + edi + 0xaf], bl
mov edi, dword [ebp + 8]
add ecx, 1
jmp 0x46ea88
add esi, 1
jmp 0x46ea81
mov ecx, dword [ebp - 0x30]
add eax, 1
jmp 0x46e254
push 0x80070057
call fcn.00404150
lea eax, [ecx - 0x10]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46eaf9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0xa4]
cmp dword [ecx + 0x28], 0
mov edx, dword [ebp - 0x18]
je 0x46ed3f
mov ecx, dword [edi + 0x88]
cmp ecx, 0x120
jbe 0x46ebe6
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46ebda
mov ecx, dword [edx]
mov esi, eax
imul esi, esi, 0x43
movzx ebx, byte [esi + ecx + 0x173]
lea eax, [eax + eax*4]
add esi, ecx
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x173]
movzx ecx, byte [ecx + 0x14]
add eax, ebx
add eax, ecx
movzx ecx, byte [esi + 0x14]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46eb72
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46eb8a
cmp eax, 0x60
jge 0x46eb84
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46eb8a
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
lea esp, [esp]
cmp ecx, 0x30
jge 0x46ed3f
xor eax, eax
jmp 0x46eba0
cmp eax, 0x160
jge 0x46ebd5
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x3af4], 0
je 0x46ebd0
mov edx, dword [edx]
lea esi, [ecx + 0x14]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0x14], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46eba0
add ecx, 1
jmp 0x46eb90
cmp ecx, 0x120
ja 0x46ec9a
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46ec9a
mov ecx, dword [edx]
mov esi, eax
imul esi, esi, 0x23
movzx ebx, byte [esi + ecx + 0x16e]
lea eax, [eax + eax*2]
add esi, ecx
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x16e]
movzx ecx, byte [ecx + 0xf]
add eax, ebx
add eax, ecx
movzx ecx, byte [esi + 0xf]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46ec37
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46ec4f
cmp eax, 0x60
jge 0x46ec49
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46ec4f
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46ed3f
xor eax, eax
lea esp, [esp]
cmp eax, 0x160
jge 0x46ec95
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x19f4], 0
je 0x46ec90
mov edx, dword [edx]
lea esi, [ecx + 0xc]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0xf], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46ec60
add ecx, 1
jmp 0x46ec51
mov ecx, dword [edi + 0x84]
mov esi, dword [edx]
lea eax, [ecx*8]
sub eax, ecx
lea ebx, [esi + eax*4]
lea eax, [esi + ecx*4 + 8]
movzx eax, byte [ecx + eax + 2]
lea esi, [esi + ecx*4]
movzx ecx, byte [ecx + esi + 0x89]
add eax, ecx
movzx ecx, byte [ebx + 0x89]
add eax, ecx
movzx ecx, byte [ebx + 0xa]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46ece7
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46ecff
cmp eax, 0x60
jge 0x46ecf9
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46ecff
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46ed3f
xor eax, eax
cmp eax, 0x80
jge 0x46ed3a
mov esi, ecx
shl esi, 7
add esi, eax
cmp byte [esi + edi + 0xdf4], 0
je 0x46ed35
mov edx, dword [edx]
lea esi, [ecx + 5]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0xa], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46ed08
add ecx, 1
jmp 0x46ed01
cmp dword [edi + 0x194], 0
je 0x46fe21
mov ebx, dword [ebp - 0x84]
lea eax, [edi + 0xa8]
push eax
push edx
call fcn.0047ca80
jmp 0x46fe21
movzx edx, byte [ebp - 0x2a]
shl dword [edi + 0x84], 1
cmp eax, edx
mov ecx, dword [edi + 0x84]
je 0x46ed7e
test eax, eax
setne byte [ebp - 0x2a]
cmp dword [edi + 0xdf0], 0
je 0x46f0d3
mov eax, dword [edi + 0x88]
cmp eax, 0x120
ja 0x46efca
cmp ecx, 0x160
ja 0x46eeb3
cmp dword [edi + 0xd48], 0
jle 0x46f0d3
mov eax, dword [edi + 0xd48]
mov esi, dword [edi + 0xd50]
cdq
sub eax, edx
mov ebx, eax
mov eax, esi
sub esi, dword [edi + 0xd48]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [edi + 0xd4c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x27c], eax
mov eax, dword [edi + 0xd54]
cdq
sar ebx, 1
sar ecx, 1
sub eax, edx
add esi, 1
sar eax, 1
sub ecx, ebx
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [edi + 0xd4c]
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x20], ecx
lea ecx, [ecx]
cmp esi, dword [edi + 0xd54]
jg 0x46ee40
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x28]
imul ecx, esi
add ecx, dword [edi + 0xd48]
mov edx, dword [ebp - 0x18]
add ecx, dword [edx]
push eax
push 0x23
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ee10
mov esi, dword [ebp - 0x27c]
cmp esi, dword [ebp - 0x274]
jg 0x46ee78
mov ecx, dword [edi + 0x84]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
shr ecx, 1
imul ecx, esi
add ecx, dword [edx + 4]
push eax
add ecx, ebx
push 0xd4
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ee46
mov esi, dword [ebp - 0x27c]
mov edi, edi
cmp esi, dword [ebp - 0x274]
jg 0x46f0d3
mov ecx, dword [edi + 0x84]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
shr ecx, 1
imul ecx, esi
add ecx, dword [edx + 8]
push eax
add ecx, ebx
push 0x72
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ee80
cmp eax, 0x120
ja 0x46efca
cmp ecx, 0x2c0
ja 0x46efca
cmp dword [edi + 0xd48], 0
jle 0x46f0d3
mov eax, dword [edi + 0xd48]
mov ecx, dword [edi + 0xd50]
lea ebx, [eax + eax]
mov eax, dword [edi + 0xd4c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x25c], eax
mov eax, dword [edi + 0xd54]
lea esi, [ecx + ecx]
sub ecx, dword [edi + 0xd48]
cdq
sub esi, ebx
sub eax, edx
add esi, 1
sar eax, 1
add ecx, 1
mov dword [ebp - 0x28], esi
mov esi, dword [edi + 0xd4c]
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x20], ecx
cmp esi, dword [edi + 0xd54]
jg 0x46ef51
mov ecx, dword [edi + 0x84]
mov edx, dword [ebp - 0x18]
imul ecx, esi
mov eax, dword [ebp - 0x28]
add ecx, dword [edx]
push eax
add ecx, ebx
push 0x23
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ef25
mov esi, dword [ebp - 0x25c]
cmp esi, dword [ebp - 0x254]
jg 0x46ef8d
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
shr ecx, 1
imul ecx, esi
add ecx, dword [edi + 0xd48]
push eax
add ecx, dword [edx + 4]
push 0xd4
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ef57
mov esi, dword [ebp - 0x25c]
cmp esi, dword [ebp - 0x254]
jg 0x46f0d3
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
shr ecx, 1
imul ecx, esi
add ecx, dword [edi + 0xd48]
push eax
add ecx, dword [edx + 8]
push 0x72
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46ef93
cmp eax, 0x240
ja 0x46f0d3
cmp ecx, 0x2c0
ja 0x46f0d3
mov eax, dword [edi + 0xd48]
test eax, eax
jle 0x46f0d3
mov edx, dword [edi + 0xd4c]
mov esi, dword [edi + 0xd54]
lea ebx, [eax + eax]
mov eax, dword [edi + 0xd50]
lea ecx, [eax + eax]
sub eax, dword [edi + 0xd48]
sub ecx, ebx
add esi, esi
add edx, edx
add ecx, 1
add eax, 1
mov dword [ebp - 0x490], esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], eax
mov esi, edx
cmp esi, dword [ebp - 0x490]
jg 0x46f053
mov ecx, dword [edi + 0x84]
mov edx, dword [ebp - 0x18]
imul ecx, esi
mov eax, dword [ebp - 0x28]
add ecx, dword [edx]
push eax
add ecx, ebx
push 0x23
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46f027
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46f096
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
shr ecx, 1
imul ecx, esi
add ecx, dword [edi + 0xd48]
push eax
add ecx, dword [edx + 4]
push 0xd4
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46f060
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46f0d3
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
shr ecx, 1
imul ecx, esi
add ecx, dword [edi + 0xd48]
push eax
add ecx, dword [edx + 8]
push 0x72
push ecx
call fcn.004f9940
add esp, 0xc
add esi, 1
jmp 0x46f0a0
cmp byte [edi + 0x820], 1
jne 0x46f270
mov ecx, dword [ebp - 0x80]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x46f270
mov eax, dword [edi + 0xd20]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x34c], 1
jne 0x46f119
mov dword [ebp - 0x340], 4
jmp 0x46f139
cmp eax, 1
jne 0x46f12a
mov dword [ebp - 0x340], 0x14
jmp 0x46f139
cmp eax, 2
jne 0x46f139
mov dword [ebp - 0x340], 0x64
mov edx, dword [edi + 0xd2c]
mov esi, dword [edi + 0xd24]
cmp edx, esi
jle 0x46f201
mov eax, dword [edi + 0xd30]
mov ecx, dword [edi + 0xd28]
cmp eax, ecx
jle 0x46f201
mov ebx, dword [edi + 0x88]
cmp ebx, 0x120
ja 0x46f1ca
cmp dword [edi + 0x84], 0x160
ja 0x46f198
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], eax
jmp 0x46f225
cmp ebx, 0x120
ja 0x46f1ca
cmp dword [edi + 0x84], 0x2c0
ja 0x46f1ca
add esi, esi
add edx, edx
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], eax
jmp 0x46f225
cmp ebx, 0x240
ja 0x46f225
cmp dword [edi + 0x84], 0x2c0
ja 0x46f225
add edx, edx
add esi, esi
mov dword [ebp - 0x338], edx
add ecx, ecx
lea edx, [eax + eax]
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], edx
jmp 0x46f225
mov eax, dword [edi + 0x84]
mov ecx, dword [edi + 0x88]
mov dword [ebp - 0x33c], ebx
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x334], ebx
mov dword [ebp - 0x330], ecx
mov edx, dword [ebp - 0x18]
push edx
lea eax, [ebp - 0x364]
push eax
call fcn.0049b150
mov ecx, dword [ebp - 0x344]
add esp, 8
cmp ecx, dword [ebp - 0x340]
jle 0x46f270
cmp byte [edi + 0x820], 0
je 0x46f256
or dword [edi + 0x2b4], 0x20
cmp dword [edi + 0xd34], 1
jne 0x46f270
or dword [edi + 0x2b4], 8
mov dword [ebp - 0x9c], 1
cmp dword [edi + 0x1b8], 1
jne 0x46f291
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x18]
push edx
lea edi, [ebp - 0x434]
call fcn.0049afa0
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0xa4]
cmp dword [eax + 0x24], 0
je 0x46fbc3
call fcn.004d4cf7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46f2bb
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 - 0x30], eax
mov bl, 0xe
lea esi, [ebp - 0x3e0]
mov byte [ebp - 4], bl
call fcn.00405920
mov ecx, esi
push ecx
mov esi, str._y__m__d__H:_M:_S
lea edi, [ebp - 0x88]
call fcn.00405aa0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xf
call fcn.00404ec0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46f31f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx - 0xc]
xor esi, esi
mov dword [ebp - 0x28], edx
xor eax, eax
lea esp, [esp]
cmp eax, dword [ebp - 0x28]
jge 0x46fba0
cmp eax, esi
jl 0x46eacf
cmp eax, dword [ecx - 0xc]
jg 0x46eacf
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x88]
cmp edx, 0x240
mov cl, byte [eax + ecx]
jne 0x46f4b9
cmp dword [edi + 0x84], 0x2c0
jne 0x46f4b9
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f388.33
movzx ecx, byte [ecx + 0x471024]
jmp dword [ecx*4 + 0x470fec]
mov dword [ebp - 0x48], 0x644e40
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x645140
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x6428c0
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x641780
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x642380
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x642080
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x644780
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x642f80
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x641c00
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x644a80
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x644300
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x641480
jmp case.0x46f388.33
mov dword [ebp - 0x48], 0x643e80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx ebx, byte [esi + edx + 0x389a]
movzx ecx, byte [esi + edx + 0x38a9]
add ecx, ebx
movzx ebx, byte [esi + edx + 0xb9e9]
movzx edx, byte [esi + edx + 0xb9da]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46f448
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f462
cmp ecx, 0x60
jge 0x46f45b
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f462
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46fb93
xor ecx, ecx
cmp ecx, 0x10
jge 0x46f4b4
mov ebx, dword [ebp - 0x48]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46f4af
mov bl, byte [ebp - 0x1c]
add edx, 0x14
imul edx, dword [edi + 0x84]
add edx, ecx
mov esi, eax
shl esi, 4
add esi, edx
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
mov byte [esi + edx + 0x19a], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46f475
add edx, 1
jmp 0x46f467
cmp edx, 0x120
jne 0x46f77c
cmp dword [edi + 0x84], 0x2c0
jne 0x46f622
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f4eb.33
movzx ecx, byte [ecx + 0x471078]
jmp dword [ecx*4 + 0x471040]
mov dword [ebp - 0x58], 0x643d00
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x643940
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x644600
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x6437c0
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x643b80
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x643400
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x641300
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x642c80
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x643280
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x642740
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x644180
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x643640
jmp case.0x46f4eb.33
mov dword [ebp - 0x58], 0x641a80
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx]
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 0x46f5b6
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f5d0
cmp ecx, 0x60
jge 0x46f5c9
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f5d0
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46fb93
xor ecx, ecx
cmp ecx, 8
jge 0x46f61d
mov ebx, dword [ebp - 0x58]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46f618
mov bl, byte [ebp - 0x1c]
add edx, 0xc
imul edx, dword [edi + 0x84]
lea esi, [eax + eax*2]
add edx, ecx
lea edx, [edx + esi*4]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov byte [edx + esi + 0x1cc], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46f5e3
add edx, 1
jmp 0x46f5d5
cmp edx, 0x120
jne 0x46f77c
cmp dword [edi + 0x84], 0x160
jne 0x46f77c
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f654.33
movzx ecx, byte [ecx + 0x4710cc]
jmp dword [ecx*4 + 0x471094]
mov dword [ebp - 0x50], 0x643580
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x6455c0
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x643ac0
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x641fc0
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x642680
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x645500
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x642ec0
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x641240
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x644d80
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x642e00
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x642bc0
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x645440
jmp case.0x46f654.33
mov dword [ebp - 0x50], 0x641f00
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
movzx ebx, byte [edx + eax*8 + 0x7ad]
movzx ecx, byte [edx + eax*8 + 0x7b4]
add ecx, ebx
movzx ebx, byte [edx + eax*8 + 0x2754]
movzx edx, byte [edx + eax*8 + 0x274d]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46f710
mov dword [ebp - 0x1c], esi
mov dword [edi + eax*4 + 0x82c], esi
jmp 0x46f72d
cmp ecx, 0x60
jge 0x46f723
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f72a
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x18
mov dword [ebp - 0x20], edx
jge 0x46fb93
xor ecx, ecx
lea ecx, [ecx]
cmp ecx, 8
jge 0x46f777
mov ebx, dword [ebp - 0x50]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46f772
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov bl, byte [ebp - 0x1c]
add edx, 5
imul edx, dword [edi + 0x84]
add edx, ecx
lea edx, [edx + eax*8]
mov byte [edx + esi + 0xcd], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46f740
add edx, 1
jmp 0x46f72f
cmp edx, 0x1e0
jne 0x46f8e4
cmp dword [edi + 0x84], 0x280
jne 0x46f8e4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f7ae.33
movzx ecx, byte [ecx + 0x471120]
jmp dword [ecx*4 + 0x4710e8]
mov dword [ebp - 0x38], 0x644e40
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x645140
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x6428c0
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x641780
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x642380
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x642080
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x644780
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x642f80
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x641c00
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x644a80
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x644300
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x641480
jmp case.0x46f7ae.33
mov dword [ebp - 0x38], 0x643e80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
mov edx, eax
shl edx, 4
movzx ebx, byte [esi + edx + 0x3354]
movzx ecx, byte [esi + edx + 0x3363]
add ecx, ebx
movzx ebx, byte [esi + edx + 0xa8e3]
movzx edx, byte [esi + edx + 0xa8d4]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46f86e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f888
cmp ecx, 0x60
jge 0x46f881
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f888
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46fb93
xor ecx, ecx
jmp 0x46f8a0
cmp ecx, 0x10
jge 0x46f8df
mov ebx, dword [ebp - 0x38]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46f8da
mov bl, byte [ebp - 0x1c]
add edx, 0x14
imul edx, dword [edi + 0x84]
add edx, ecx
mov esi, eax
shl esi, 4
add esi, edx
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
mov byte [esi + edx + 0x154], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46f8a0
add edx, 1
jmp 0x46f88d
cmp edx, 0xf0
jne 0x46fb93
cmp dword [edi + 0x84], 0x280
jne 0x46fa44
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f916.33
movzx ecx, byte [ecx + 0x471174]
jmp dword [ecx*4 + 0x47113c]
mov dword [ebp - 0x44], 0x643d00
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x643940
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x644600
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x6437c0
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x643b80
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x643400
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x641300
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x642c80
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x643280
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x642740
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x644180
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x643640
jmp case.0x46f916.33
mov dword [ebp - 0x44], 0x641a80
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
movzx ebx, byte [esi + edx + 0x1a90]
movzx ecx, byte [esi + edx + 0x1a97]
add ecx, ebx
movzx ebx, byte [esi + edx + 0x9017]
movzx edx, byte [esi + edx + 0x9010]
add ecx, ebx
add ecx, edx
sar ecx, 2
cmp ecx, 0xd0
jle 0x46f9d8
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f9f2
cmp ecx, 0x60
jge 0x46f9eb
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f9f2
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46fb93
xor ecx, ecx
cmp ecx, 8
jge 0x46fa3f
mov ebx, dword [ebp - 0x44]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46fa3a
mov bl, byte [ebp - 0x1c]
add edx, 0xa
imul edx, dword [edi + 0x84]
lea esi, [eax + eax*2]
add edx, ecx
lea edx, [edx + esi*4]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov byte [edx + esi + 0x190], bl
mov edx, dword [ebp - 0x20]
add ecx, 1
jmp 0x46fa05
add edx, 1
jmp 0x46f9f7
cmp edx, 0xf0
jne 0x46fb93
cmp dword [edi + 0x84], 0x140
jne 0x46fb93
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46fa76.33
movzx ecx, byte [ecx + 0x4711c8]
jmp dword [ecx*4 + 0x471190]
mov dword [ebp - 0x4c], 0x643580
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x6455c0
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x643ac0
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x641fc0
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x642680
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x645500
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x642ec0
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x641240
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x644d80
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x642e00
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x642bc0
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x645440
jmp case.0x46fa76.33
mov dword [ebp - 0x4c], 0x641f00
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
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 0x46fb31
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46fb4b
cmp ecx, 0x60
jge 0x46fb44
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46fb4b
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor esi, esi
cmp esi, 0x18
jge 0x46fb93
xor ecx, ecx
cmp ecx, 8
jge 0x46fb8e
mov ebx, dword [ebp - 0x4c]
lea edx, [ecx + esi*8]
cmp byte [edx + ebx], 0
je 0x46fb89
mov bl, byte [ebp - 0x1c]
lea edx, [esi + 5]
imul edx, dword [edi + 0x84]
mov edi, dword [ebp - 0x18]
mov edi, dword [edi]
add edx, ecx
lea edx, [edx + eax*8]
mov byte [edx + edi + 0xaf], bl
mov edi, dword [ebp + 8]
add ecx, 1
jmp 0x46fb57
add esi, 1
jmp 0x46fb50
mov ecx, dword [ebp - 0x30]
add eax, 1
xor esi, esi
jmp 0x46f330
lea eax, [ecx - 0x10]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46fbc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0xa4]
cmp dword [ecx + 0x28], 0
mov edx, dword [ebp - 0x18]
je 0x46fdff
mov ecx, dword [edi + 0x88]
cmp ecx, 0x120
jbe 0x46fca6
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46fc9a
mov ecx, dword [edx]
mov esi, eax
imul esi, esi, 0x43
movzx ebx, byte [esi + ecx + 0x173]
lea eax, [eax + eax*4]
add esi, ecx
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x173]
movzx ecx, byte [ecx + 0x14]
add eax, ebx
add eax, ecx
movzx ecx, byte [esi + 0x14]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46fc39
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fc51
cmp eax, 0x60
jge 0x46fc4b
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fc51
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x30
jge 0x46fdff
xor eax, eax
mov edi, edi
cmp eax, 0x160
jge 0x46fc95
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x3af4], 0
je 0x46fc90
mov edx, dword [edx]
lea esi, [ecx + 0x14]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0x14], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46fc60
add ecx, 1
jmp 0x46fc53
cmp ecx, 0x120
ja 0x46fd5a
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46fd5a
mov ecx, dword [edx]
mov esi, eax
imul esi, esi, 0x23
movzx ebx, byte [esi + ecx + 0x16e]
lea eax, [eax + eax*2]
add esi, ecx
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 0x16e]
movzx ecx, byte [ecx + 0xf]
add eax, ebx
add eax, ecx
movzx ecx, byte [esi + 0xf]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46fcf7
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fd0f
cmp eax, 0x60
jge 0x46fd09
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fd0f
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46fdff
xor eax, eax
lea esp, [esp]
cmp eax, 0x160
jge 0x46fd55
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x19f4], 0
je 0x46fd50
mov edx, dword [edx]
lea esi, [ecx + 0xc]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0xf], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46fd20
add ecx, 1
jmp 0x46fd11
mov ecx, dword [edi + 0x84]
mov esi, dword [edx]
lea eax, [ecx*8]
sub eax, ecx
lea ebx, [esi + eax*4]
lea eax, [esi + ecx*4 + 8]
movzx eax, byte [ecx + eax + 2]
lea esi, [esi + ecx*4]
movzx ecx, byte [ecx + esi + 0x89]
add eax, ecx
movzx ecx, byte [ebx + 0x89]
add eax, ecx
movzx ecx, byte [ebx + 0xa]
add eax, ecx
sar eax, 2
cmp eax, 0xd0
jle 0x46fda7
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fdbf
cmp eax, 0x60
jge 0x46fdb9
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fdbf
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46fdff
xor eax, eax
cmp eax, 0x80
jge 0x46fdfa
mov esi, ecx
shl esi, 7
add esi, eax
cmp byte [esi + edi + 0xdf4], 0
je 0x46fdf5
mov edx, dword [edx]
lea esi, [ecx + 5]
imul esi, dword [edi + 0x84]
add esi, eax
mov byte [esi + edx + 0xa], bl
mov edx, dword [ebp - 0x18]
add eax, 1
jmp 0x46fdc8
add ecx, 1
jmp 0x46fdc1
cmp dword [edi + 0x194], 0
je 0x46fe1b
mov ebx, dword [ebp - 0x84]
lea eax, [edi + 0xa8]
push eax
push edx
call fcn.0047ca80
shr dword [edi + 0x84], 1
cmp dword [edi + 0x7d54], 0
jg 0x46fe3c
cmp byte [edi + 0x2a8], 0
jne 0x46fe3c
cmp byte [edi + 0x2a9], 0
je 0x46fe76
cmp byte [ebp - 0x21], 0
mov ecx, dword [ebp - 0x7c]
je 0x46fe73
mov edx, dword [ebp - 0x178]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x17c]
push edx
mov edx, dword [ebp - 0x1a0]
push ecx
push eax
push edx
call dword [0x679a5c]
add esp, 0x10
emms
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x68], eax
jmp 0x46fe76
mov dword [ebp - 0x68], ecx
cmp byte [edi + 0x7da0], 0
jne 0x4702ed
cmp dword [edi + 0x7d54], 0
jg 0x46fead
cmp byte [edi + 0x2a8], 0
jne 0x46fead
cmp byte [edi + 0x2a9], 0
jne 0x46fead
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
jmp 0x4708cb
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x4708cb
mov ecx, dword [edi + 0x7cf8]
cmp ecx, 0xa
jb 0x46fec9
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62b5d0]
cmp dword [ecx*8 + 0x62b5d4], 0
je 0x46fee3
test edx, edx
setne al
jmp 0x46fee8
test edx, edx
sete al
test al, al
je 0x4708cb
cmp dword [edi + 0xde0], 0
mov ebx, dword [ebp - 0x78]
je 0x46ff0f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
mov dword [edi + 0xde0], 0
mov eax, dword [edi + 0x1c4]
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x34]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
push eax
mov eax, dword [ebp - 0x68]
push ecx
add esi, 0xe
push esi
push eax
mov ecx, ebx
call edx
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [ebp - 0x20], eax
jne 0x46ff49
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x46ff8f
cmp ebx, 1
jne 0x46ff8d
cmp byte [esi], 0xa0
jne 0x46ff78
cmp byte [esi + 1], 0x10
jne 0x46ff78
cmp byte [esi + 2], 0
jne 0x46ff78
cmp byte [esi + 3], 0
jne 0x46ff78
cmp byte [esi + 7], bl
jne 0x46ff8d
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x46ff8d
mov cl, bl
jmp 0x46ff8f
cmp byte [esi + 3], 1
jne 0x46ff8d
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x46ff8d
mov cl, 1
jmp 0x46ff8f
xor cl, cl
test eax, eax
movzx edx, cl
mov dword [ebp - 0x70], edx
jle 0x4708cb
cmp byte [edi + 0x2a8], 0
je 0x470055
cmp dword [edi + 0x7d38], 0
je 0x46fffe
lea ebx, [edi + 0x7d20]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xa0]
push 1
push eax
mov eax, dword [edi + 0x7d38]
push ecx
mov ecx, dword [ebp - 0x34]
call fcn.0048af50
mov edx, dword [edi + 0x7d38]
add esp, 0xc
cmp dword [edx + 0x303c], 0
jne 0x46fff7
mov esi, edi
call fcn.0044c6f0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 0x7d38]
add dword [ebp - 0xb0], 1
cmp dword [eax + 0x1c], 0x36ee80
ja 0x47004e
cmp dword [eax + 0x3034], 0x400
jae 0x47004e
lea eax, [ebp - 0x53c]
push 0x648a74
push eax
call fcn.004f3a11
mov ecx, dword [edi + 0x7d38]
movzx edx, byte [ecx + 0x27]
add esp, 8
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x530]
cmp eax, edx
je 0x470055
or dword [edi + 0x2b4], 0x50
cmp byte [edi + 0x2a9], 0
je 0x47013b
cmp dword [edi + 0x7d3c], 0
je 0x4700b6
lea ebx, [edi + 0x7d20]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xa0]
push 1
push eax
mov eax, dword [edi + 0x7d3c]
push ecx
mov ecx, dword [ebp - 0x34]
call fcn.0048af50
mov edx, dword [edi + 0x7d3c]
add esp, 0xc
cmp dword [edx + 0x303c], 0
jne 0x4700af
mov esi, edi
call fcn.0044c6f0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xb4]
cmp eax, ecx
jb 0x4700c7
sub eax, ecx
jmp 0x4700ce
sub eax, ecx
add eax, 0x5265c00
mov ecx, dword [edi + 0xd1c]
imul ecx, ecx, 0x3e8
cmp eax, ecx
jbe 0x4700e8
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d3c]
cmp dword [eax + 0x1c], 0x36ee80
ja 0x470131
cmp dword [eax + 0x3034], 0x400
jae 0x470131
lea edx, [ebp - 0x4d0]
push 0x648a74
push edx
call fcn.004f3a11
mov ecx, dword [edi + 0x7d3c]
movzx edx, byte [ecx + 0x27]
add esp, 8
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x4c4]
cmp eax, edx
je 0x47013b
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d54]
test eax, eax
jle 0x4708cb
xor ebx, ebx
mov dword [ebp - 0x30], eax
cmp ebx, 0x80
mov dword [ebp - 0x1c], ebx
jge 0x4708cb
cmp dword [ebp - 0x30], 0
jle 0x4708cb
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + ebx*4 + 0xe8]
test eax, eax
je 0x4702c0
mov ecx, dword [eax + 0x24]
cmp ecx, dword [edi + 0x15c]
jne 0x4702c0
mov edx, dword [eax + 0x28]
cmp edx, dword [edi + 0x160]
jne 0x4702c0
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [edi + 0x164]
jne 0x4702c0
sub dword [ebp - 0x30], 1
cmp dword [ebp - 0x70], 0
mov esi, dword [eax + 0x14]
lea ecx, [eax + 0x14]
je 0x4702c8
cmp esi, 0x19
jl 0x4701ec
mov edx, 0xa
sub edx, esi
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + ebx*4 + 0xe8]
mov eax, dword [ecx + 0xc]
sub eax, esi
add eax, 0x32
xor edx, edx
mov esi, 0x28
div esi
mov dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + ebx*4 + 0xe8]
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x28], edx
mov ebx, dword [ebp - 0x6c]
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + eax*4 + 0xe8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x493e0
lea esi, [edx + ecx + 0x30]
mov ecx, dword [ebp - 0x20]
mov byte [esi + 4], 6
lea edx, [ecx + 0x12]
mov dword [esi], edx
mov edx, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [edx + 0x24]
mov byte [esi + 5], dl
mov edx, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [edx + 0x28]
mov byte [esi + 6], dl
mov eax, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [eax + 0x2c]
mov eax, dword [ebp - 0x34]
push ecx
add eax, 0xe
push eax
lea ecx, [esi + 0x12]
push ecx
mov byte [esi + 7], dl
call fcn.004ffc50
mov al, byte [ebp - 0x28]
movzx edx, byte [esi + 9]
mov ecx, dword [ebp - 0x1c]
and al, 1
add al, al
add al, al
add al, al
and dl, 0x10
or al, dl
or al, 1
mov byte [esi + 9], al
mov eax, dword [ebp - 0xa0]
mov dword [esi + 0xa], eax
mov eax, dword [ebx + ecx*4 + 0xe8]
mov eax, dword [eax + 0xc]
add eax, 1
xor edx, edx
mov esi, 0x28
div esi
mov eax, dword [ebx + ecx*4 + 0xe8]
add esp, 0xc
mov dword [eax + 0xc], edx
mov ecx, dword [ebx + ecx*4 + 0xe8]
add ecx, 0x14
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ebx, dword [ebp - 0x1c]
add ebx, 1
jmp 0x47014e
cmp dword [eax + 0x1c], 0
je 0x4702c0
cmp esi, 0x28
jge 0x4702de
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x4701fc
mov dword [eax + 0x1c], 0
add ebx, 1
jmp 0x47014e
cmp dword [edi + 0x7d54], 0
jle 0x470612
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x47061f
mov ecx, dword [edi + 0x98]
cmp ecx, 0xa
jb 0x470316
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62b5d0]
cmp dword [ecx*8 + 0x62b5d4], 0
je 0x470330
test edx, edx
setne al
jmp 0x470335
test edx, edx
sete al
test al, al
je 0x47061f
mov al, byte [ebp - 0x29]
cmp al, 3
mov edx, dword [ebp - 0x68]
jne 0x47036c
mov eax, dword [edi + 0x94]
mov ecx, dword [edi + 0x90]
mov edx, dword [edx]
push eax
mov eax, dword [ebp - 0x1cc]
push ecx
push edx
push eax
call dword [0x679a3c]
add esp, 0x10
emms
jmp 0x4703ae
cmp al, 1
jne 0x470395
mov eax, dword [edi + 0x94]
mov ecx, dword [edi + 0x90]
mov edx, dword [edx]
push eax
mov eax, dword [ebp - 0x1cc]
push ecx
push edx
push eax
call dword [0x679a5c]
add esp, 0x10
emms
jmp 0x4703ae
mov ecx, dword [ebp - 0xfc]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x1cc]
push eax
push ecx
call fcn.004ffc50
add esp, 0xc
cmp byte [edi + 0xde4], 0
mov ebx, dword [ebp - 0x98]
je 0x4703cd
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
mov byte [edi + 0xde4], 0
mov eax, dword [edi + 0x1c4]
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x34]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
push eax
push ecx
add esi, 0xe
push esi
lea eax, [ebp - 0x1cc]
push eax
mov ecx, ebx
call edx
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [ebp - 0x70], eax
jne 0x47040a
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x470450
cmp ebx, 1
jne 0x47044e
cmp byte [esi], 0xa0
jne 0x470439
cmp byte [esi + 1], 0x10
jne 0x470439
cmp byte [esi + 2], 0
jne 0x470439
cmp byte [esi + 3], 0
jne 0x470439
cmp byte [esi + 7], bl
jne 0x47044e
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x47044e
mov cl, bl
jmp 0x470450
cmp byte [esi + 3], 1
jne 0x47044e
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x47044e
mov cl, 1
jmp 0x470450
xor cl, cl
test eax, eax
movzx edx, cl
mov dword [ebp - 0x20], edx
jle 0x47061f
mov eax, dword [edi + 0x7d54]
test eax, eax
jle 0x47061f
xor ebx, ebx
mov edx, eax
cmp ebx, 0x80
mov dword [ebp - 0x1c], ebx
jge 0x47061f
test edx, edx
jle 0x47061f
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + ebx*4 + 0xe8]
test eax, eax
je 0x4705e5
mov ecx, dword [eax + 0x24]
cmp ecx, dword [edi + 0x15c]
jne 0x4705e5
mov ecx, dword [eax + 0x28]
cmp ecx, dword [edi + 0x160]
jne 0x4705e5
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [edi + 0x164]
jne 0x4705e5
mov esi, dword [eax + 0x14]
sub edx, 1
cmp dword [ebp - 0x20], 0
lea ecx, [eax + 0x14]
mov dword [ebp - 0x30], edx
je 0x4705ed
cmp esi, 0x19
jl 0x47050e
mov edx, 0xa
sub edx, esi
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + ebx*4 + 0xe8]
mov eax, dword [ecx + 0xc]
sub eax, esi
add eax, 0x32
xor edx, edx
mov esi, 0x28
div esi
mov dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + ebx*4 + 0xe8]
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x28], edx
mov ebx, dword [ebp - 0x6c]
mov dword [eax + 0x1c], 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + eax*4 + 0xe8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x493e0
lea esi, [edx + ecx + 0x30]
mov ecx, dword [ebp - 0x70]
mov byte [esi + 4], 6
lea edx, [ecx + 0x12]
mov dword [esi], edx
mov edx, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [edx + 0x24]
mov byte [esi + 5], dl
mov edx, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [edx + 0x28]
mov byte [esi + 6], dl
mov eax, dword [ebx + eax*4 + 0xe8]
movzx edx, byte [eax + 0x2c]
mov eax, dword [ebp - 0x34]
push ecx
add eax, 0xe
push eax
lea ecx, [esi + 0x12]
push ecx
mov byte [esi + 7], dl
call fcn.004ffc50
mov al, byte [ebp - 0x28]
movzx edx, byte [esi + 9]
mov ecx, dword [ebp - 0x1c]
and al, 1
add al, al
add al, al
add al, al
and dl, 0x10
or al, dl
or al, 1
mov byte [esi + 9], al
mov eax, dword [ebp - 0xa0]
mov dword [esi + 0xa], eax
mov eax, dword [ebx + ecx*4 + 0xe8]
mov eax, dword [eax + 0xc]
add eax, 1
xor edx, edx
mov esi, 0x28
div esi
mov eax, dword [ebx + ecx*4 + 0xe8]
add esp, 0xc
mov dword [eax + 0xc], edx
mov ecx, dword [ebx + ecx*4 + 0xe8]
add ecx, 0x14
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x1c]
add ebx, 1
jmp 0x470470
cmp dword [eax + 0x1c], 0
je 0x4705e5
cmp esi, 0x28
jge 0x470603
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x47051e
mov dword [eax + 0x1c], 0
add ebx, 1
jmp 0x470470
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp byte [edi + 0x2a8], 0
jne 0x470640
cmp byte [edi + 0x2a9], 0
jne 0x470640
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
jmp 0x4708cb
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x4708cb
mov ecx, dword [edi + 0x7cf8]
cmp ecx, 0xa
jb 0x47065c
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62b5d0]
cmp dword [ecx*8 + 0x62b5d4], 0
je 0x470676
test edx, edx
setne al
jmp 0x47067b
test edx, edx
sete al
test al, al
je 0x4708cb
cmp dword [edi + 0xde0], 0
mov ebx, dword [ebp - 0x78]
je 0x4706a2
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
mov dword [edi + 0xde0], 0
mov eax, dword [edi + 0x1c4]
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x34]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
push eax
mov eax, dword [ebp - 0x68]
push ecx
add esi, 0xe
push esi
push eax
mov ecx, ebx
call edx
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [ebp - 0x28], eax
jne 0x4706dc
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x470722
cmp ebx, 1
jne 0x470720
cmp byte [esi], 0xa0
jne 0x47070b
cmp byte [esi + 1], 0x10
jne 0x47070b
cmp byte [esi + 2], 0
jne 0x47070b
cmp byte [esi + 3], 0
jne 0x47070b
cmp byte [esi + 7], bl
jne 0x470720
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x470720
mov cl, bl
jmp 0x470722
cmp byte [esi + 3], 1
jne 0x470720
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x470720
mov cl, 1
jmp 0x470722
xor cl, cl
test eax, eax
movzx esi, cl
mov dword [ebp - 0x20], esi
jle 0x4708cb
cmp byte [edi + 0x2a8], 0
je 0x4707e5
cmp dword [edi + 0x7d38], 0
je 0x47078e
lea ebx, [edi + 0x7d20]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp - 0x28]
mov eax, dword [edi + 0x7d38]
mov ecx, dword [ebp - 0x34]
push 1
push esi
push edx
mov edx, dword [ebp - 0xa0]
call fcn.0048af50
mov eax, dword [edi + 0x7d38]
add esp, 0xc
cmp dword [eax + 0x303c], 0
jne 0x470787
mov esi, edi
call fcn.0044c6f0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 0x7d38]
add dword [ebp - 0xb0], 1
cmp dword [eax + 0x1c], 0x36ee80
ja 0x4707de
cmp dword [eax + 0x3034], 0x400
jae 0x4707de
lea ecx, [ebp - 0x518]
push 0x648a74
push ecx
call fcn.004f3a11
mov edx, dword [edi + 0x7d38]
movzx ecx, byte [edx + 0x27]
add esp, 8
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x50c]
cmp eax, ecx
je 0x4707e5
or dword [edi + 0x2b4], 0x50
cmp byte [edi + 0x2a9], 0
je 0x4708cb
cmp dword [edi + 0x7d3c], 0
je 0x470846
lea ebx, [edi + 0x7d20]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push 1
push edx
mov edx, dword [ebp - 0xa0]
push eax
mov eax, dword [edi + 0x7d3c]
call fcn.0048af50
mov ecx, dword [edi + 0x7d3c]
add esp, 0xc
cmp dword [ecx + 0x303c], 0
jne 0x47083f
mov esi, edi
call fcn.0044c6f0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x74]
cmp eax, ecx
jb 0x470857
sub eax, ecx
jmp 0x47085e
sub eax, ecx
add eax, 0x5265c00
mov edx, dword [edi + 0xd1c]
imul edx, edx, 0x3e8
cmp eax, edx
jbe 0x470878
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d3c]
cmp dword [eax + 0x1c], 0x36ee80
ja 0x4708c1
cmp dword [eax + 0x3034], 0x400
jae 0x4708c1
lea eax, [ebp - 0x4f4]
push 0x648a74
push eax
call fcn.004f3a11
mov ecx, dword [edi + 0x7d3c]
movzx edx, byte [ecx + 0x27]
add esp, 8
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x4e8]
cmp eax, edx
je 0x4708cb
or dword [edi + 0x2b4], 0x80
cmp dword [edi + 0x7d58], 0
mov ebx, dword [ebp - 0x74]
jle 0x470abd
mov ecx, dword [ebp - 0xe4]
mov eax, ebx
sub eax, ecx
cmp ebx, ecx
jae 0x4708ee
add eax, 0x5265c00
cmp eax, 0x78
jbe 0x470abd
cmp byte [ebp - 0x21], 0
mov dword [ebp - 0xe4], ebx
je 0x47092b
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
push ecx
push edx
push eax
mov eax, dword [ebp - 0x15c]
push eax
call dword [0x679a60]
add esp, 0x10
emms
jmp 0x470951
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x134]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x138]
push edx
mov edx, dword [ebp - 0x15c]
push ecx
push eax
push edx
call dword [0x679a70]
add esp, 0x10
emms
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 0
push edx
lea edx, [esi + 0x18]
push edx
lea edx, [ebp - 0x15c]
push edx
call eax
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov dword [ebp - 0x20], eax
add eax, 0x14
mov dword [esi], eax
mov cx, word [ebp - 0x138]
mov word [esi + 4], cx
mov dx, word [ebp - 0x134]
mov word [esi + 6], dx
mov eax, dword [edi + 0x7d58]
xor ecx, ecx
mov dword [ebp - 0x30], eax
cmp ecx, 4
mov dword [ebp - 0x1c], ecx
jge 0x470abd
cmp dword [ebp - 0x30], 0
jle 0x470abd
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx + ecx*4 + 0x520]
test eax, eax
je 0x470ab5
mov edx, dword [eax + 0xc]
cmp edx, dword [edi + 0x15c]
jne 0x470ab5
mov edx, dword [eax + 0x10]
cmp edx, dword [edi + 0x160]
jne 0x470ab5
mov edx, dword [eax + 0x14]
cmp edx, dword [edi + 0x164]
jne 0x470ab5
mov ecx, dword [eax + 0x206c]
mov esi, dword [ebp - 0x20]
imul ecx, ecx, 0x493e0
sub dword [ebp - 0x30], 1
push str.Close
add esi, 0x18
push esi
push 0x60c5d8
push 0xc8
lea eax, [ecx + eax + 0x2078]
push 0x6046d8
mov dword [ebp - 0x28], eax
add eax, 4
push 0x493e0
push eax
call fcn.004f5e00
add esp, 0x1c
test esi, esi
mov ebx, eax
je 0x470a77
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
add eax, 4
push esi
add eax, ebx
push edx
push eax
mov dword [ebp - 0x70], eax
call fcn.004ffc50
mov eax, dword [ebp - 0x70]
add esp, 0xc
mov dword [eax + esi], 0xa0d0a0d
lea ebx, [ebx + esi + 4]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x6c]
mov dword [ecx], ebx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx*4 + 0x520]
mov esi, dword [eax + 0x206c]
add esi, 1
and esi, 7
mov dword [eax + 0x206c], esi
mov edx, dword [edx + ecx*4 + 0x520]
add edx, 0x2074
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x74]
add ecx, 1
jmp 0x4709af
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xa0], ebx
jmp 0x46d1d0
cmp byte [ebp - 0x21], 0
je 0x470b00
mov edx, dword [edi + 0xd18]
push 0
push edx
call dword [sym.imp.exp.dll_void___cdecl_JMVSDK_Cif2Halfd1_int__bool_]
add esp, 8
mov eax, dword [edi + 0xd18]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_CancelGetAudio_int_]
mov ecx, dword [edi + 0x7d00]
add esp, 4
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [edi + 0x7d00]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, edi
mov dword [edi + 0x7d00], 0
call fcn.0046aed0
mov eax, dword [edi + 0xd18]
push eax
call dword [sym.imp.exp.dll_int___cdecl_JMVSDK_StopChannel_int_]
mov ecx, dword [edi + 0xd18]
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 + 0xcdc]
push ebx
push edx
call fcn.004f9940
mov eax, dword [ebp - 0x2ec]
add esp, 0xc
cmp eax, ebx
je 0x470b8a
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x3bc]
cmp eax, ebx
je 0x470ba3
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2cc4
add esp, 4
lea eax, [ebp - 0x484]
call fcn.0049b110
mov eax, dword [ebp - 0x354]
cmp eax, ebx
je 0x470bc7
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
lea eax, [ebp - 0x434]
call fcn.0049b110
mov esi, dword [edi + 0x7d38]
cmp esi, ebx
mov byte [edi + 0x2a8], bl
mov byte [edi + 0x2a9], bl
je 0x470c09
call fcn.0048aef0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], ebx
call fcn.0044c6f0
mov esi, dword [edi + 0x7d3c]
cmp esi, ebx
je 0x470c34
call fcn.0048aef0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d401b
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], ebx
call fcn.0044c6f0
mov ecx, dword [ebp - 0x78]
cmp ecx, ebx
je 0x470c43
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [ebp - 0x98]
cmp ecx, ebx
je 0x470c55
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, dword [ebp - 0x1cc]
cmp eax, ebx
je 0x470c6e
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov ecx, dword [ebp - 0xcc]
cmp ecx, ebx
je 0x470c80
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [ebp - 0xf8]
cmp ecx, ebx
je 0x470c92
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, dword [ebp - 0x1f8]
cmp eax, ebx
je 0x470cab
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x250]
cmp eax, ebx
je 0x470cc4
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [edi + 0xcb0]
cmp eax, ebx
je 0x470cdd
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x15c]
cmp eax, ebx
je 0x470cf6
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x2e8]
cmp eax, ebx
je 0x470d0f
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x2bc]
cmp eax, ebx
je 0x470d28
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2cc4
add esp, 4
mov eax, dword [ebp - 0x1a0]
cmp eax, ebx
je 0x470d41
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2cc4
add esp, 4
mov edx, dword [ebp - 0x34]
push edx
call fcn.004d401b
mov eax, dword [ebp - 0x84]
add esp, 4
cmp eax, ebx
je 0x470d64
lea ecx, [edi + 0xa8]
push ecx
push eax
call fcn.0047c7d0
cmp dword [edi + 0x88], 0x120
ja 0x470d95
cmp dword [edi + 0x84], 0x160
jbe 0x470d95
mov eax, dword [ebp - 0x224]
cmp eax, ebx
je 0x470d95
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2cc4
add esp, 4
mov esi, edi
mov dword [edi + 0x2b4], ebx
mov dword [edi + 0x2ac], ebx
mov byte [edi + 0x7da0], bl
mov dword [edi + 0x84], 0x160
mov dword [edi + 0x88], 0x120
mov byte [edi + 0x822], bl
call fcn.0044dbf0
lea ecx, [ebp - 0xe0]
mov dword [ebp - 4], 0xffffffff
call fcn.004e3d36
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