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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d461b
mov eax, dword fs:[0]
push eax
sub esp, 0x530
push ebx
push esi
push edi
mov eax, dword [0x629560]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [0x648fc4]
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.00405a20
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.0044d9e0
lea ecx, [ebp - 0xe0]
call fcn.004e38ad
mov dword [ebp - 4], edi
cmp dword [ebx + 0x88], 0x120
mov dword [ebp - 0x9c], edi
ja 0x46c77a
cmp dword [ebx + 0x84], 0x160
jbe 0x46c77a
push 0xc
call fcn.004d3c8b
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
cmp esi, edi
mov byte [ebp - 4], 1
je 0x46c7b1
mov edi, dword [ebx + 0x88]
add edi, edi
jmp 0x46c79a
push 0xc
call fcn.004d3c8b
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
cmp esi, edi
mov byte [ebp - 4], 2
je 0x46c7b1
mov edi, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
push 8
push eax
push esi
call fcn.0048b240
mov dword [esi], vtable.CJpegEncoder.0
jmp 0x46c7b3
xor esi, esi
mov byte [ebp - 4], 0
cmp dword [ebx + 0x1a8], 2
mov dword [ebp - 0xcc], esi
jne 0x46c7f8
push 0x280
call fcn.004d3c8b
add esp, 4
test eax, eax
je 0x46c7f1
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x84]
push ecx
push edx
mov esi, eax
call fcn.0048b830
mov dword [ebp - 0x78], eax
jmp 0x46c83f
xor eax, eax
mov dword [ebp - 0x78], eax
jmp 0x46c83f
push 0xc
call fcn.004d3c8b
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 3
je 0x46c836
mov eax, dword [ebx + 0x84]
mov edi, dword [ebx + 0x88]
push 0xd
push eax
push esi
call fcn.0048b240
mov dword [esi], vtable.CMpeg4Encoder.0
mov dword [esi + 4], 0
jmp 0x46c838
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.004f9810
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0x84]
add esp, 0xc
push edx
push eax
push 4
mov ebx, esi
call fcn.0048a240
add esp, 0xc
push 0x2c
lea ecx, [ebp - 0x1f8]
push 0
push ecx
call fcn.004f9810
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.0048a240
add esp, 0xc
push 0x2c
lea ecx, [ebp - 0x250]
push 0
push ecx
call fcn.004f9810
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.0048a240
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.004f9810
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.0048a240
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x2bc]
push 0
push eax
call fcn.004f9810
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.0048a240
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x1a0]
push 0
push eax
call fcn.004f9810
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.0048a240
add esp, 0xc
push 0x2c
lea eax, [ebp - 0x224]
push 0
push eax
mov dword [ebp - 0x68], 0
call fcn.004f9810
mov eax, dword [esi + 0x88]
add esp, 0xc
cmp eax, 0x120
mov dword [ebp - 0xf0], 0xffffffff
ja 0x46ca08
mov ecx, dword [esi + 0x84]
cmp ecx, 0x160
jbe 0x46ca08
lea edx, [eax + eax]
push edx
push ecx
push 1
lea ebx, [ebp - 0x224]
call fcn.0048a240
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.004d3cbb
add esp, 4
mov dword [ebp - 0x34], eax
call fcn.0047b7b0
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.0047c370
push 0x48
xor ebx, ebx
lea eax, [ebp - 0x480]
push ebx
push eax
call fcn.004f9810
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.0049a860
push 0x48
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.004f9810
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.0049a860
push 0x64
lea eax, [ebp - 0x3c8]
push ebx
push eax
call fcn.004f9810
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.0049ad40
push 0x64
lea eax, [ebp - 0x360]
push ebx
push eax
call fcn.004f9810
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.0049ad40
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.004f2b9f
add esp, 4
cmp eax, ebx
je 0x46cba9
lea ecx, [eax + 0xf]
and ecx, 0xfffffff0
cmp ecx, eax
jne 0x46cba0
add ecx, 0x10
mov dl, cl
sub dl, al
mov byte [ecx - 1], dl
jmp 0x46cbab
xor ecx, ecx
mov eax, dword [0x648fc0]
push 0x2c
mov dword [ebp - 0x2ec], ecx
lea ecx, [ebp - 0x15c]
push ebx
push ecx
mov dword [ebp - 0x6c], eax
call fcn.004f9810
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.0048a240
add esp, 0xc
push 0xc
call fcn.004d3c8b
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 4
je 0x46cc2d
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.0048b240
mov edi, dword [ebp + 8]
mov dword [esi], vtable.CJpegEncoder.0
jmp 0x46cc2f
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 0x46cc78
cmp dword [edi + 0x84], 0x160
ja 0x46cc71
cmp dword [edi + 0x198], 0
jne 0x46cc78
cmp dword [edi + 0x7cf8], 5
jae 0x46cc78
mov ebx, 1
jmp 0x46cc7a
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.004f9810
add esp, 0xc
test bl, bl
mov byte [ebp - 0x29], 0
mov dword [ebp - 0xfc], esi
jne 0x46ccd1
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 0x46ce30
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46cce4
shr eax, 1
mov byte [ebp - 0x29], 1
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x88]
cmp eax, 0x120
jbe 0x46ccfd
shr eax, 1
or byte [ebp - 0x29], 2
mov dword [edi + 0x94], eax
mov eax, dword [edi + 0x7cf8]
cmp eax, 5
jae 0x46cd1a
mov dword [edi + 0x98], 6
jmp 0x46cd28
cmp eax, 8
jae 0x46cd22
add eax, 2
mov dword [edi + 0x98], eax
cmp dword [edi + 0x1a8], 2
jne 0x46cd6f
push 0x280
call fcn.004d3c8b
add esp, 4
cmp eax, esi
je 0x46cd62
mov edx, dword [edi + 0x88]
mov ecx, dword [edi + 0x84]
push edx
push ecx
mov esi, eax
call fcn.0048b830
mov dword [ebp - 0x98], eax
jmp 0x46cdfa
xor eax, eax
mov dword [ebp - 0x98], eax
jmp 0x46cdfa
push 0xc
call fcn.004d3c8b
mov esi, eax
add esp, 4
mov dword [ebp - 0x88], esi
test esi, esi
mov byte [ebp - 4], 5
je 0x46cdb2
mov eax, dword [edi + 0x88]
mov edi, dword [edi + 0x84]
push 0xd
push edi
push esi
mov edi, eax
call fcn.0048b240
mov edi, dword [ebp + 8]
mov dword [esi], vtable.CMpeg4Encoder.0
mov dword [esi + 4], 0
jmp 0x46cdb4
xor esi, esi
push 0
push 0x62d3e4
push 0x62d2b0
push 0
push esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x98], esi
call fcn.004f3cd7
add esp, 0x14
test eax, eax
je 0x46cdfa
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.0048a240
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 0x46ce4f
fadd qword [0x611728]
fld qword [0x6116c0]
fmul st(1)
fadd qword [0x6116f0]
fdivrp st(1)
call fcn.004fb970
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x104], eax
jne 0x46ce7a
mov dword [ebp - 0x104], 1
mov eax, dword [edi + 0x7cf4]
cmp eax, 0xa
jge 0x46ce91
mov dword [ebp - 0xac], 0x499ea0
jmp 0x46cee1
cmp eax, 0x64
jne 0x46cea2
mov dword [ebp - 0xac], 0x499bd0
jmp 0x46cee1
cmp eax, 0x12c
jne 0x46ceb5
mov dword [ebp - 0xac], 0x499ea0
jmp 0x46cee1
cmp eax, 0x190
jne 0x46cec8
mov dword [ebp - 0xac], 0x499ea0
jmp 0x46cee1
xor ecx, ecx
cmp eax, 0x1f4
setne cl
sub ecx, 1
and ecx, 0x499ea0
mov dword [ebp - 0xac], ecx
cmp dword [edi + 0x88], 0x120
jbe 0x46cef4
mov eax, 1
jmp 0x46cf04
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 0x4708d0
cmp dword [edi + 0x7d94], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0xd0], ebx
je 0x46cf84
cmp byte [edi + 0x823], 0
je 0x46cf84
push ebx
push ebx
push edi
push 0x467350
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.0047c970
jmp 0x46cfa0
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 0x46cfd9
mov dword [ebp - 4], 0
jmp 0x4708b8
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
push 0
push 0x2710
push ecx
push edx
call fcn.00500a50
push 0
push 0x5265c00
push edx
push eax
call fcn.005ca310
mov dword [ebp - 0x74], eax
mov eax, dword [edi + 0x2b4]
test al, 2
je 0x46d017
and eax, 0xfffffffd
mov dword [edi + 0x2b4], eax
mov eax, dword [edi + 0x2b4]
test al, 8
je 0x46d275
and eax, 0xfffffff7
xor ebx, ebx
cmp dword [ebp - 0x9c], ebx
mov dword [edi + 0x2b4], eax
je 0x46d095
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x7c]
cmp dword [ecx - 0xc], ebx
jne 0x46d04b
mov ebx, 1
lea esi, [ebp - 0x48c]
call fcn.00405a20
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 0x46d26b
jg 0x46d08d
cmp ecx, dword [ebp - 0x16c]
jbe 0x46d26b
test ebx, ebx
jne 0x46d26b
mov eax, dword [edi + 0x88]
cmp eax, 0x120
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x68], edx
ja 0x46d0db
mov ecx, dword [edi + 0x84]
cmp ecx, 0x160
jbe 0x46d0db
mov ebx, dword [ebp - 0x18]
lea edx, [ebp - 0x224]
push edx
call fcn.00499420
lea eax, [ebp - 0x224]
add esp, 4
mov dword [ebp - 0x204], 1
mov dword [ebp - 0x68], eax
cmp byte [ebp - 0x21], 0
je 0x46d10c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x1a0]
push 0x120
push 0x160
push eax
push edx
call dword [0x67aa3c]
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.004d4991
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46d147
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 0x605167
call fcn.0041c260
lea ecx, [ebp - 0x164]
push ecx
push edi
call fcn.0044cd60
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.00404f90
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 0x46d1aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x20]
push 0x60d25c
push ebx
call fcn.004f5eba
mov esi, eax
add esp, 8
test esi, esi
je 0x46d1da
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
push esi
push ecx
push 1
push edx
call fcn.004f64af
push esi
call fcn.004f61b8
add esp, 0x14
cmp dword [ebp - 0x9c], 0
je 0x46d233
call fcn.00459cc0
test eax, eax
je 0x46d233
call fcn.00484bf0
push ecx
mov dword [ebp - 0x28], eax
lea eax, [ebx - 0x10]
mov dword [ebp - 0x9c], esp
mov esi, esp
push eax
call fcn.004053b0
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.00404f70
mov esi, dword [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00484f10
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 0x46d26b
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 0x46d2da
and eax, 0xffffff7f
cmp byte [edi + 0x2a9], 0
mov dword [edi + 0x2b4], eax
mov dword [ebp - 0xd0], 0
je 0x46d2d3
mov esi, dword [edi + 0x7d3c]
test esi, esi
je 0x46d2cc
call fcn.0048abe0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], 0
call fcn.0044c4e0
mov byte [edi + 0x2a9], 0
mov esi, edi
call fcn.0044d9e0
mov eax, dword [edi + 0x2b4]
test al, 0x40
je 0x46d333
and eax, 0xffffffbf
cmp byte [edi + 0x2a8], 0
mov dword [edi + 0x2b4], eax
je 0x46d32c
mov esi, dword [edi + 0x7d38]
test esi, esi
je 0x46d325
call fcn.0048abe0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], 0
call fcn.0044c4e0
mov byte [edi + 0x2a8], 0
mov esi, edi
call fcn.0044d9e0
mov eax, dword [edi + 0x2b4]
test al, 0x20
je 0x46d598
and eax, 0xffffffdf
cmp byte [edi + 0x2a9], 0
mov dword [edi + 0x2b4], eax
mov dword [ebp - 0xd0], 1
jne 0x46d588
mov esi, dword [edi + 0x7d3c]
test esi, esi
je 0x46d390
call fcn.0048abe0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], 0
call fcn.0044c4e0
lea ecx, [ebp - 0x128]
push 0x649a5c
push ecx
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d3b5
mov eax, dword [ebp - 0x114]
add eax, 0x76c
jmp 0x46d3b7
xor eax, eax
lea edx, [ebp - 0x128]
push 0x649a5c
push edx
mov word [ebp - 0xc4], ax
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d3e1
mov eax, dword [ebp - 0x118]
add eax, 1
jmp 0x46d3e3
xor eax, eax
mov byte [ebp - 0xc2], al
lea eax, [ebp - 0x128]
push 0x649a5c
push eax
call fcn.004f36b2
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x11c]
lea ecx, [ebp - 0x128]
push 0x649a5c
push ecx
mov byte [ebp - 0xc1], al
call fcn.004f36b2
add esp, 0x10
test eax, eax
jne 0x46d42c
mov eax, dword [ebp - 0x120]
jmp 0x46d42f
or eax, 0xffffffff
lea edx, [ebp - 0x128]
push 0x649a5c
push edx
mov byte [ebp - 0xc0], al
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d455
mov eax, dword [ebp - 0x124]
jmp 0x46d458
or eax, 0xffffffff
mov byte [ebp - 0xbf], al
lea eax, [ebp - 0x128]
push 0x649a5c
push eax
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d47e
mov eax, dword [ebp - 0x128]
jmp 0x46d481
or eax, 0xffffffff
push 0x3048
mov byte [ebp - 0xbe], al
mov byte [ebp - 0xbd], 0
call fcn.004d3c8b
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.0041c260
push edi
lea ecx, [ebp - 0x160]
call fcn.0044c770
mov esi, eax
mov byte [ebp - 4], 0xa
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x46d539
mov ecx, dword [eax + 4]
push ecx
mov ecx, esi
call fcn.00405590
mov esi, dword [esi]
push esi
mov esi, ebx
call fcn.0048aa80
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 0x46d56c
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 0x46d591
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0xb4], edx
mov esi, edi
call fcn.0044d9e0
mov eax, dword [edi + 0x2b4]
test al, 0x10
je 0x46d7e9
and eax, 0xffffffef
cmp byte [edi + 0x2a8], 0
mov dword [edi + 0x2b4], eax
jne 0x46d7e2
mov esi, dword [edi + 0x7d38]
test esi, esi
je 0x46d5eb
call fcn.0048abe0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], 0
call fcn.0044c4e0
lea eax, [ebp - 0x128]
push 0x649a5c
push eax
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d610
mov eax, dword [ebp - 0x114]
add eax, 0x76c
jmp 0x46d612
xor eax, eax
lea ecx, [ebp - 0x128]
push 0x649a5c
push ecx
mov word [ebp - 0xbc], ax
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d63c
mov eax, dword [ebp - 0x118]
add eax, 1
jmp 0x46d63e
xor eax, eax
lea edx, [ebp - 0x128]
push 0x649a5c
push edx
mov byte [ebp - 0xba], al
call fcn.004f36b2
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0x11c]
push 0x649a5c
mov byte [ebp - 0xb9], al
lea eax, [ebp - 0x128]
push eax
call fcn.004f36b2
add esp, 0x10
test eax, eax
jne 0x46d687
mov eax, dword [ebp - 0x120]
jmp 0x46d68a
or eax, 0xffffffff
lea ecx, [ebp - 0x128]
push 0x649a5c
push ecx
mov byte [ebp - 0xb8], al
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d6b0
mov eax, dword [ebp - 0x124]
jmp 0x46d6b3
or eax, 0xffffffff
lea edx, [ebp - 0x128]
push 0x649a5c
push edx
mov byte [ebp - 0xb7], al
call fcn.004f36b2
add esp, 8
test eax, eax
jne 0x46d6d9
mov eax, dword [ebp - 0x128]
jmp 0x46d6dc
or eax, 0xffffffff
push 0x3048
mov byte [ebp - 0xb6], al
mov byte [ebp - 0xb5], 0
call fcn.004d3c8b
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 0x605167
mov dword [edi + 0x7d38], ebx
call fcn.0041c260
push edi
lea ecx, [ebp - 0x174]
call fcn.0044c770
mov esi, eax
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x46d794
mov eax, dword [eax + 4]
push eax
mov ecx, esi
call fcn.00405590
mov esi, dword [esi]
push esi
mov esi, ebx
call fcn.0048aa80
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 0x46d7c7
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.0044d9e0
cmp dword [edi + 0x7d98], 0
je 0x46d858
cmp dword [ebp - 0xd0], 0
je 0x46d849
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 0x46d858
push 0
push 0
push 0
push 0x46c5f0
push 0
push 0
mov dword [ebp - 0xc8], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xf0], eax
jmp 0x46d858
push 1
push 0
push 0x605167
call dword [sym.imp.WINMM.dll_PlaySoundA]
mov eax, dword [ebp - 0x70]
cmp eax, 1
jne 0x46d86c
lea eax, [edi + 0xa8]
push eax
jmp 0x46cf8c
cmp eax, 2
jne 0x46d8b9
cmp byte [ebp - 0x21], 0
jne 0x46d8fe
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.0047c6c0
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x2e8]
lea eax, [ebp - 0x2bc]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x7c], eax
jmp 0x46cfa0
test eax, eax
jne 0x46d8fe
cmp byte [ebp - 0x21], 1
jne 0x46d8fe
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.0047c6c0
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 0x250]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x7c], eax
jmp 0x46cfa0
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 0x46d9b5
mov ecx, dword [edi + 0x84]
cmp ecx, 0x160
jbe 0x46d9b5
add ecx, ecx
add ecx, ecx
cmp dword [edi + 0x88], 0x120
jbe 0x46d979
add ecx, ecx
push ecx
push 0
push eax
call fcn.004f9810
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0xce0]
add esp, 0xc
add edx, edx
push edx
push 0x7f
push eax
call fcn.004f9810
mov ecx, dword [edi + 0x84]
add ecx, ecx
jmp 0x46d9a0
push ecx
push 0
push eax
call fcn.004f9810
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0xce0]
add esp, 0xc
push edx
push 0x7f
push eax
call fcn.004f9810
mov ecx, dword [edi + 0x84]
mov edx, dword [edi + 0xce4]
add esp, 0xc
push ecx
push 0x7f
push edx
call fcn.004f9810
add esp, 0xc
cmp dword [edi + 0x88], 0x120
jbe 0x46d9d7
cmp dword [edi + 0x1c8], 0
je 0x46d9d7
mov eax, dword [esi]
lea esi, [ebp - 0x2fc]
call fcn.004996b0
cmp byte [ebp - 0x21], 0
mov eax, dword [edi + 0x1d0]
jne 0x46eb34
movzx ecx, byte [ebp - 0x2a]
cmp eax, ecx
je 0x46d9f5
test eax, eax
setne byte [ebp - 0x2a]
cmp dword [edi + 0xdf0], 0
je 0x46dd63
mov eax, dword [edi + 0x88]
cmp eax, 0x120
ja 0x46dc57
cmp dword [edi + 0x84], 0x160
ja 0x46db33
cmp dword [edi + 0xd48], 0
jle 0x46dd63
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 0x46dab8
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46da88
mov esi, dword [ebp - 0x28c]
mov edi, edi
cmp esi, dword [ebp - 0x284]
jg 0x46daf2
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dac0
mov esi, dword [ebp - 0x28c]
jmp 0x46db00
cmp esi, dword [ebp - 0x284]
jg 0x46dd63
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46db00
cmp eax, 0x120
ja 0x46dc57
cmp dword [edi + 0x84], 0x2c0
ja 0x46dc57
cmp dword [edi + 0xd48], 0
jle 0x46dd63
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 0x46dbdc
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dbb0
mov esi, dword [ebp - 0x26c]
cmp esi, dword [ebp - 0x264]
jg 0x46dc18
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dbe2
mov esi, dword [ebp - 0x26c]
mov edi, edi
cmp esi, dword [ebp - 0x264]
jg 0x46dd63
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dc20
cmp eax, 0x240
ja 0x46dd63
cmp dword [edi + 0x84], 0x2c0
ja 0x46dd63
mov eax, dword [edi + 0xd48]
test eax, eax
jle 0x46dd63
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 0x46dce4
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dcb8
mov esi, dword [edi + 0xd4c]
lea ebx, [ebx]
cmp esi, dword [edi + 0xd54]
jg 0x46dd26
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dcf0
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46dd63
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46dd30
cmp byte [edi + 0x820], 1
jne 0x46df6a
mov eax, dword [ebp - 0x80]
xor edx, edx
div dword [ebp - 0x104]
test edx, edx
jne 0x46df6a
mov eax, dword [edi + 0xd20]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x3b4], 1
jne 0x46dda5
mov dword [ebp - 0x3a8], 4
jmp 0x46ddc5
cmp eax, 1
jne 0x46ddb6
mov dword [ebp - 0x3a8], 0x14
jmp 0x46ddc5
cmp eax, 2
jne 0x46ddc5
mov dword [ebp - 0x3a8], 0x64
mov edx, dword [edi + 0xd2c]
mov esi, dword [edi + 0xd24]
cmp edx, esi
jle 0x46de8d
mov eax, dword [edi + 0xd30]
mov ecx, dword [edi + 0xd28]
cmp eax, ecx
jle 0x46de8d
mov ebx, dword [edi + 0x88]
cmp ebx, 0x120
ja 0x46de56
cmp dword [edi + 0x84], 0x160
ja 0x46de24
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x3a0], edx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], eax
jmp 0x46deb1
cmp ebx, 0x120
ja 0x46de56
cmp dword [edi + 0x84], 0x2c0
ja 0x46de56
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 0x46deb1
cmp ebx, 0x240
ja 0x46deb1
cmp dword [edi + 0x84], 0x2c0
ja 0x46deb1
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 0x46deb1
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.0049a9b0
mov ecx, dword [ebp - 0x3ac]
add esp, 8
cmp ecx, dword [ebp - 0x3a8]
jle 0x46df6a
cmp byte [edi + 0x820], 0
je 0x46dee6
or dword [edi + 0x2b4], 0x20
cmp dword [edi + 0xd34], 0
je 0x46df2e
cmp dword [edi + 0x284], 0
je 0x46df2e
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xf4]
mov eax, ecx
sub eax, edx
cmp ecx, edx
jae 0x46df0e
add eax, 0x5265c00
cmp eax, 0x1770
jbe 0x46df31
or dword [edi + 0x2b4], 8
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x9c], 1
jmp 0x46df31
mov ecx, dword [ebp - 0x74]
cmp dword [edi + 0x7d98], 0
je 0x46df6a
cmp dword [edi + 0x284], 0
je 0x46df6a
mov edx, dword [ebp - 0x100]
mov eax, ecx
sub eax, edx
cmp ecx, edx
jae 0x46df56
add eax, 0x5265c00
cmp eax, 0x1770
jbe 0x46df6a
mov dword [ebp - 0x100], ecx
mov byte [0x648fa1], 1
cmp dword [edi + 0x1b8], 1
jne 0x46df8b
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x18]
push edx
lea edi, [ebp - 0x484]
call fcn.0049a800
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0xa4]
cmp dword [eax + 0x24], 0
je 0x46e8cc
call fcn.004d4991
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46dfb5
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.00405a20
mov ecx, esi
push ecx
mov esi, str._y__m__d__H:_M:_S
lea edi, [ebp - 0x170]
call fcn.00405ba0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xd
call fcn.00404f90
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 0x46e019
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 0x46e8a9
xor ebx, ebx
cmp eax, ebx
jl 0x46e89f
cmp eax, dword [ecx - 0xc]
jg 0x46e89f
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x88]
cmp edx, 0x240
mov cl, byte [eax + ecx]
jne 0x46e1b4
cmp dword [edi + 0x84], 0x2c0
jne 0x46e1b4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e07e.33
movzx ecx, byte [ecx + 0x470bfc]
jmp dword [ecx*4 + 0x470bc4]
mov dword [ebp - 0x3c], 0x645e28
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x646128
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x6438a8
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x642768
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x643368
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x643068
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x645768
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x643f68
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x642be8
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x645a68
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x6452e8
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x642468
jmp case.0x46e07e.33
mov dword [ebp - 0x3c], 0x644e68
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 0x46e13e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e158
cmp ecx, 0x60
jge 0x46e151
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e158
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46e894
xor ecx, ecx
jmp 0x46e170
cmp ecx, 0x10
jge 0x46e1af
mov ebx, dword [ebp - 0x3c]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46e1aa
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 0x46e170
add edx, 1
jmp 0x46e15d
cmp edx, 0x120
jne 0x46e47c
cmp dword [edi + 0x84], 0x2c0
jne 0x46e31f
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e1e6.33
movzx ecx, byte [ecx + 0x470c50]
jmp dword [ecx*4 + 0x470c18]
mov dword [ebp - 0x5c], 0x644ce8
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x644928
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x6455e8
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x6447a8
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x644b68
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x6443e8
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x6422e8
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x643c68
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x644268
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x643728
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x645168
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x644628
jmp case.0x46e1e6.33
mov dword [ebp - 0x5c], 0x642a68
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 0x46e2b2
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46e2cf
cmp ecx, 0x60
jge 0x46e2c5
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e2cc
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46e894
xor ecx, ecx
nop
cmp ecx, 8
jge 0x46e31a
mov ebx, dword [ebp - 0x5c]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e315
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 0x46e2e0
add edx, 1
jmp 0x46e2d1
cmp edx, 0x120
jne 0x46e47c
cmp dword [edi + 0x84], 0x160
jne 0x46e47c
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e351.33
movzx ecx, byte [ecx + 0x470ca4]
jmp dword [ecx*4 + 0x470c6c]
mov dword [ebp - 0x64], 0x644568
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x6465a8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x644aa8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x642fa8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x643668
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x6464e8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x643ea8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x642228
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x645d68
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x643de8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x643ba8
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x646428
jmp case.0x46e351.33
mov dword [ebp - 0x64], 0x642ee8
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 0x46e40d
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46e42a
cmp ecx, 0x60
jge 0x46e420
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e427
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x18
mov dword [ebp - 0x20], edx
jge 0x46e894
xor ecx, ecx
lea ebx, [ebx]
cmp ecx, 8
jge 0x46e477
mov ebx, dword [ebp - 0x64]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e472
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 0x46e440
add edx, 1
jmp 0x46e42c
cmp edx, 0x1e0
jne 0x46e5e4
cmp dword [edi + 0x84], 0x280
jne 0x46e5e4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e4ae.33
movzx ecx, byte [ecx + 0x470cf8]
jmp dword [ecx*4 + 0x470cc0]
mov dword [ebp - 0x40], 0x645e28
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x646128
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x6438a8
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x642768
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x643368
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x643068
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x645768
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x643f68
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x642be8
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x645a68
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x6452e8
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x642468
jmp case.0x46e4ae.33
mov dword [ebp - 0x40], 0x644e68
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 0x46e56e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e588
cmp ecx, 0x60
jge 0x46e581
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e588
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46e894
xor ecx, ecx
jmp 0x46e5a0
cmp ecx, 0x10
jge 0x46e5df
mov ebx, dword [ebp - 0x40]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46e5da
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 0x46e5a0
add edx, 1
jmp 0x46e58d
cmp edx, 0xf0
jne 0x46e894
cmp dword [edi + 0x84], 0x280
jne 0x46e744
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e616.33
movzx ecx, byte [ecx + 0x470d4c]
jmp dword [ecx*4 + 0x470d14]
mov dword [ebp - 0x54], 0x644ce8
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x644928
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x6455e8
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x6447a8
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x644b68
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x6443e8
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x6422e8
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x643c68
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x644268
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x643728
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x645168
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x644628
jmp case.0x46e616.33
mov dword [ebp - 0x54], 0x642a68
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 0x46e6d8
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e6f2
cmp ecx, 0x60
jge 0x46e6eb
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e6f2
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46e894
xor ecx, ecx
cmp ecx, 8
jge 0x46e73f
mov ebx, dword [ebp - 0x54]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46e73a
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 0x46e705
add edx, 1
jmp 0x46e6f7
cmp edx, 0xf0
jne 0x46e894
cmp dword [edi + 0x84], 0x140
jne 0x46e894
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46e776.33
movzx ecx, byte [ecx + 0x470da0]
jmp dword [ecx*4 + 0x470d68]
mov dword [ebp - 0x60], 0x644568
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x6465a8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x644aa8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x642fa8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x643668
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x6464e8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x643ea8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x642228
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x645d68
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x643de8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x643ba8
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x646428
jmp case.0x46e776.33
mov dword [ebp - 0x60], 0x642ee8
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 0x46e832
mov dword [ebp - 0x1c], ebx
mov dword [edi + eax*4 + 0x82c], ebx
jmp 0x46e84f
cmp ecx, 0x60
jge 0x46e845
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46e84c
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor esi, esi
cmp esi, 0x18
jge 0x46e894
xor ecx, ecx
cmp ecx, 8
jge 0x46e88f
mov ebx, dword [ebp - 0x60]
lea edx, [ecx + esi*8]
cmp byte [edx + ebx], 0
je 0x46e88a
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 0x46e858
add esi, 1
jmp 0x46e851
mov ecx, dword [ebp - 0x30]
add eax, 1
jmp 0x46e024
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 0x46e8c9
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 0x46eb0f
mov ecx, dword [edi + 0x88]
cmp ecx, 0x120
jbe 0x46e9b6
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46e9aa
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 0x46e942
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46e95a
cmp eax, 0x60
jge 0x46e954
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46e95a
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
lea esp, [esp]
cmp ecx, 0x30
jge 0x46eb0f
xor eax, eax
jmp 0x46e970
cmp eax, 0x160
jge 0x46e9a5
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x3af4], 0
je 0x46e9a0
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 0x46e970
add ecx, 1
jmp 0x46e960
cmp ecx, 0x120
ja 0x46ea6a
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46ea6a
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 0x46ea07
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46ea1f
cmp eax, 0x60
jge 0x46ea19
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46ea1f
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46eb0f
xor eax, eax
lea esp, [esp]
cmp eax, 0x160
jge 0x46ea65
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x19f4], 0
je 0x46ea60
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 0x46ea30
add ecx, 1
jmp 0x46ea21
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 0x46eab7
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46eacf
cmp eax, 0x60
jge 0x46eac9
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46eacf
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46eb0f
xor eax, eax
cmp eax, 0x80
jge 0x46eb0a
mov esi, ecx
shl esi, 7
add esi, eax
cmp byte [esi + edi + 0xdf4], 0
je 0x46eb05
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 0x46ead8
add ecx, 1
jmp 0x46ead1
cmp dword [edi + 0x194], 0
je 0x46fbf1
mov ebx, dword [ebp - 0x84]
lea eax, [edi + 0xa8]
push eax
push edx
call fcn.0047c740
jmp 0x46fbf1
movzx edx, byte [ebp - 0x2a]
shl dword [edi + 0x84], 1
cmp eax, edx
mov ecx, dword [edi + 0x84]
je 0x46eb4e
test eax, eax
setne byte [ebp - 0x2a]
cmp dword [edi + 0xdf0], 0
je 0x46eea3
mov eax, dword [edi + 0x88]
cmp eax, 0x120
ja 0x46ed9a
cmp ecx, 0x160
ja 0x46ec83
cmp dword [edi + 0xd48], 0
jle 0x46eea3
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 0x46ec10
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ebe0
mov esi, dword [ebp - 0x27c]
cmp esi, dword [ebp - 0x274]
jg 0x46ec48
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ec16
mov esi, dword [ebp - 0x27c]
mov edi, edi
cmp esi, dword [ebp - 0x274]
jg 0x46eea3
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ec50
cmp eax, 0x120
ja 0x46ed9a
cmp ecx, 0x2c0
ja 0x46ed9a
cmp dword [edi + 0xd48], 0
jle 0x46eea3
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 0x46ed21
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ecf5
mov esi, dword [ebp - 0x25c]
cmp esi, dword [ebp - 0x254]
jg 0x46ed5d
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ed27
mov esi, dword [ebp - 0x25c]
cmp esi, dword [ebp - 0x254]
jg 0x46eea3
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ed63
cmp eax, 0x240
ja 0x46eea3
cmp ecx, 0x2c0
ja 0x46eea3
mov eax, dword [edi + 0xd48]
test eax, eax
jle 0x46eea3
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 0x46ee23
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46edf7
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46ee66
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ee30
mov esi, dword [edi + 0xd4c]
lea esp, [esp]
cmp esi, dword [edi + 0xd54]
jg 0x46eea3
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.004f9810
add esp, 0xc
add esi, 1
jmp 0x46ee70
cmp byte [edi + 0x820], 1
jne 0x46f040
mov ecx, dword [ebp - 0x80]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x46f040
mov eax, dword [edi + 0xd20]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x34c], 1
jne 0x46eee9
mov dword [ebp - 0x340], 4
jmp 0x46ef09
cmp eax, 1
jne 0x46eefa
mov dword [ebp - 0x340], 0x14
jmp 0x46ef09
cmp eax, 2
jne 0x46ef09
mov dword [ebp - 0x340], 0x64
mov edx, dword [edi + 0xd2c]
mov esi, dword [edi + 0xd24]
cmp edx, esi
jle 0x46efd1
mov eax, dword [edi + 0xd30]
mov ecx, dword [edi + 0xd28]
cmp eax, ecx
jle 0x46efd1
mov ebx, dword [edi + 0x88]
cmp ebx, 0x120
ja 0x46ef9a
cmp dword [edi + 0x84], 0x160
ja 0x46ef68
mov dword [ebp - 0x33c], esi
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], eax
jmp 0x46eff5
cmp ebx, 0x120
ja 0x46ef9a
cmp dword [edi + 0x84], 0x2c0
ja 0x46ef9a
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 0x46eff5
cmp ebx, 0x240
ja 0x46eff5
cmp dword [edi + 0x84], 0x2c0
ja 0x46eff5
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 0x46eff5
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.0049a9b0
mov ecx, dword [ebp - 0x344]
add esp, 8
cmp ecx, dword [ebp - 0x340]
jle 0x46f040
cmp byte [edi + 0x820], 0
je 0x46f026
or dword [edi + 0x2b4], 0x20
cmp dword [edi + 0xd34], 1
jne 0x46f040
or dword [edi + 0x2b4], 8
mov dword [ebp - 0x9c], 1
cmp dword [edi + 0x1b8], 1
jne 0x46f061
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x18]
push edx
lea edi, [ebp - 0x434]
call fcn.0049a800
mov edi, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0xa4]
cmp dword [eax + 0x24], 0
je 0x46f993
call fcn.004d4991
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46f08b
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.00405a20
mov ecx, esi
push ecx
mov esi, str._y__m__d__H:_M:_S
lea edi, [ebp - 0x88]
call fcn.00405ba0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xf
call fcn.00404f90
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 0x46f0ef
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 0x46f970
cmp eax, esi
jl 0x46e89f
cmp eax, dword [ecx - 0xc]
jg 0x46e89f
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x88]
cmp edx, 0x240
mov cl, byte [eax + ecx]
jne 0x46f289
cmp dword [edi + 0x84], 0x2c0
jne 0x46f289
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f158.33
movzx ecx, byte [ecx + 0x470df4]
jmp dword [ecx*4 + 0x470dbc]
mov dword [ebp - 0x48], 0x645e28
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x646128
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x6438a8
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x642768
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x643368
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x643068
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x645768
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x643f68
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x642be8
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x645a68
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x6452e8
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x642468
jmp case.0x46f158.33
mov dword [ebp - 0x48], 0x644e68
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 0x46f218
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f232
cmp ecx, 0x60
jge 0x46f22b
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f232
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46f963
xor ecx, ecx
cmp ecx, 0x10
jge 0x46f284
mov ebx, dword [ebp - 0x48]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46f27f
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 0x46f245
add edx, 1
jmp 0x46f237
cmp edx, 0x120
jne 0x46f54c
cmp dword [edi + 0x84], 0x2c0
jne 0x46f3f2
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f2bb.33
movzx ecx, byte [ecx + 0x470e48]
jmp dword [ecx*4 + 0x470e10]
mov dword [ebp - 0x58], 0x644ce8
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x644928
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x6455e8
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x6447a8
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x644b68
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x6443e8
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x6422e8
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x643c68
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x644268
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x643728
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x645168
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x644628
jmp case.0x46f2bb.33
mov dword [ebp - 0x58], 0x642a68
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 0x46f386
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f3a0
cmp ecx, 0x60
jge 0x46f399
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f3a0
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46f963
xor ecx, ecx
cmp ecx, 8
jge 0x46f3ed
mov ebx, dword [ebp - 0x58]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46f3e8
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 0x46f3b3
add edx, 1
jmp 0x46f3a5
cmp edx, 0x120
jne 0x46f54c
cmp dword [edi + 0x84], 0x160
jne 0x46f54c
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f424.33
movzx ecx, byte [ecx + 0x470e9c]
jmp dword [ecx*4 + 0x470e64]
mov dword [ebp - 0x50], 0x644568
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x6465a8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x644aa8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x642fa8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x643668
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x6464e8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x643ea8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x642228
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x645d68
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x643de8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x643ba8
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x646428
jmp case.0x46f424.33
mov dword [ebp - 0x50], 0x642ee8
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 0x46f4e0
mov dword [ebp - 0x1c], esi
mov dword [edi + eax*4 + 0x82c], esi
jmp 0x46f4fd
cmp ecx, 0x60
jge 0x46f4f3
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f4fa
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x18
mov dword [ebp - 0x20], edx
jge 0x46f963
xor ecx, ecx
lea ecx, [ecx]
cmp ecx, 8
jge 0x46f547
mov ebx, dword [ebp - 0x50]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46f542
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 0x46f510
add edx, 1
jmp 0x46f4ff
cmp edx, 0x1e0
jne 0x46f6b4
cmp dword [edi + 0x84], 0x280
jne 0x46f6b4
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f57e.33
movzx ecx, byte [ecx + 0x470ef0]
jmp dword [ecx*4 + 0x470eb8]
mov dword [ebp - 0x38], 0x645e28
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x646128
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x6438a8
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x642768
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x643368
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x643068
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x645768
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x643f68
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x642be8
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x645a68
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x6452e8
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x642468
jmp case.0x46f57e.33
mov dword [ebp - 0x38], 0x644e68
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 0x46f63e
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f658
cmp ecx, 0x60
jge 0x46f651
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f658
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46f963
xor ecx, ecx
jmp 0x46f670
cmp ecx, 0x10
jge 0x46f6af
mov ebx, dword [ebp - 0x38]
mov esi, edx
shl esi, 4
add esi, ecx
cmp byte [esi + ebx], 0
je 0x46f6aa
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 0x46f670
add edx, 1
jmp 0x46f65d
cmp edx, 0xf0
jne 0x46f963
cmp dword [edi + 0x84], 0x280
jne 0x46f814
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f6e6.33
movzx ecx, byte [ecx + 0x470f44]
jmp dword [ecx*4 + 0x470f0c]
mov dword [ebp - 0x44], 0x644ce8
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x644928
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x6455e8
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x6447a8
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x644b68
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x6443e8
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x6422e8
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x643c68
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x644268
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x643728
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x645168
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x644628
jmp case.0x46f6e6.33
mov dword [ebp - 0x44], 0x642a68
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 0x46f7a8
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f7c2
cmp ecx, 0x60
jge 0x46f7bb
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f7c2
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp edx, 0x30
mov dword [ebp - 0x20], edx
jge 0x46f963
xor ecx, ecx
cmp ecx, 8
jge 0x46f80f
mov ebx, dword [ebp - 0x44]
lea esi, [ecx + edx*8]
cmp byte [esi + ebx], 0
je 0x46f80a
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 0x46f7d5
add edx, 1
jmp 0x46f7c7
cmp edx, 0xf0
jne 0x46f963
cmp dword [edi + 0x84], 0x140
jne 0x46f963
movsx ecx, cl
add ecx, 0xffffffe0
cmp ecx, 0x1a
ja case.0x46f846.33
movzx ecx, byte [ecx + 0x470f98]
jmp dword [ecx*4 + 0x470f60]
mov dword [ebp - 0x4c], 0x644568
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x6465a8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x644aa8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x642fa8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x643668
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x6464e8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x643ea8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x642228
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x645d68
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x643de8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x643ba8
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x646428
jmp case.0x46f846.33
mov dword [ebp - 0x4c], 0x642ee8
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 0x46f901
xor ecx, ecx
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f91b
cmp ecx, 0x60
jge 0x46f914
mov ecx, 0xff
mov dword [edi + eax*4 + 0x82c], ecx
jmp 0x46f91b
mov ecx, dword [edi + eax*4 + 0x82c]
mov dword [ebp - 0x1c], ecx
xor esi, esi
cmp esi, 0x18
jge 0x46f963
xor ecx, ecx
cmp ecx, 8
jge 0x46f95e
mov ebx, dword [ebp - 0x4c]
lea edx, [ecx + esi*8]
cmp byte [edx + ebx], 0
je 0x46f959
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 0x46f927
add esi, 1
jmp 0x46f920
mov ecx, dword [ebp - 0x30]
add eax, 1
xor esi, esi
jmp 0x46f100
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 0x46f990
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 0x46fbcf
mov ecx, dword [edi + 0x88]
cmp ecx, 0x120
jbe 0x46fa76
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46fa6a
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 0x46fa09
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fa21
cmp eax, 0x60
jge 0x46fa1b
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fa21
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x30
jge 0x46fbcf
xor eax, eax
mov edi, edi
cmp eax, 0x160
jge 0x46fa65
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x3af4], 0
je 0x46fa60
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 0x46fa30
add ecx, 1
jmp 0x46fa23
cmp ecx, 0x120
ja 0x46fb2a
mov eax, dword [edi + 0x84]
cmp eax, 0x160
jbe 0x46fb2a
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 0x46fac7
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fadf
cmp eax, 0x60
jge 0x46fad9
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fadf
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46fbcf
xor eax, eax
lea esp, [esp]
cmp eax, 0x160
jge 0x46fb25
mov esi, ecx
imul esi, esi, 0x160
add esi, eax
cmp byte [esi + edi + 0x19f4], 0
je 0x46fb20
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 0x46faf0
add ecx, 1
jmp 0x46fae1
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 0x46fb77
xor ebx, ebx
mov dword [edi + 0x88c], ebx
jmp 0x46fb8f
cmp eax, 0x60
jge 0x46fb89
mov ebx, 0xff
mov dword [edi + 0x88c], ebx
jmp 0x46fb8f
mov ebx, dword [edi + 0x88c]
xor ecx, ecx
cmp ecx, 0x18
jge 0x46fbcf
xor eax, eax
cmp eax, 0x80
jge 0x46fbca
mov esi, ecx
shl esi, 7
add esi, eax
cmp byte [esi + edi + 0xdf4], 0
je 0x46fbc5
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 0x46fb98
add ecx, 1
jmp 0x46fb91
cmp dword [edi + 0x194], 0
je 0x46fbeb
mov ebx, dword [ebp - 0x84]
lea eax, [edi + 0xa8]
push eax
push edx
call fcn.0047c740
shr dword [edi + 0x84], 1
cmp dword [edi + 0x7d54], 0
jg 0x46fc0c
cmp byte [edi + 0x2a8], 0
jne 0x46fc0c
cmp byte [edi + 0x2a9], 0
je 0x46fc46
cmp byte [ebp - 0x21], 0
mov ecx, dword [ebp - 0x7c]
je 0x46fc43
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 [0x67aa3c]
add esp, 0x10
emms
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x68], eax
jmp 0x46fc46
mov dword [ebp - 0x68], ecx
cmp byte [edi + 0x7da0], 0
jne 0x4700bd
cmp dword [edi + 0x7d54], 0
jg 0x46fc7d
cmp byte [edi + 0x2a8], 0
jne 0x46fc7d
cmp byte [edi + 0x2a9], 0
jne 0x46fc7d
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
jmp 0x47069b
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x47069b
mov ecx, dword [edi + 0x7cf8]
cmp ecx, 0xa
jb 0x46fc99
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62c5b0]
cmp dword [ecx*8 + 0x62c5b4], 0
je 0x46fcb3
test edx, edx
setne al
jmp 0x46fcb8
test edx, edx
sete al
test al, al
je 0x47069b
cmp dword [edi + 0xde0], 0
mov ebx, dword [ebp - 0x78]
je 0x46fcdf
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 0x46fd19
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x46fd5f
cmp ebx, 1
jne 0x46fd5d
cmp byte [esi], 0xa0
jne 0x46fd48
cmp byte [esi + 1], 0x10
jne 0x46fd48
cmp byte [esi + 2], 0
jne 0x46fd48
cmp byte [esi + 3], 0
jne 0x46fd48
cmp byte [esi + 7], bl
jne 0x46fd5d
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x46fd5d
mov cl, bl
jmp 0x46fd5f
cmp byte [esi + 3], 1
jne 0x46fd5d
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x46fd5d
mov cl, 1
jmp 0x46fd5f
xor cl, cl
test eax, eax
movzx edx, cl
mov dword [ebp - 0x70], edx
jle 0x47069b
cmp byte [edi + 0x2a8], 0
je 0x46fe25
cmp dword [edi + 0x7d38], 0
je 0x46fdce
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.0048ac40
mov edx, dword [edi + 0x7d38]
add esp, 0xc
cmp dword [edx + 0x303c], 0
jne 0x46fdc7
mov esi, edi
call fcn.0044c4e0
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 0x46fe1e
cmp dword [eax + 0x3034], 0x400
jae 0x46fe1e
lea eax, [ebp - 0x53c]
push 0x649a5c
push eax
call fcn.004f36b2
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 0x46fe25
or dword [edi + 0x2b4], 0x50
cmp byte [edi + 0x2a9], 0
je 0x46ff0b
cmp dword [edi + 0x7d3c], 0
je 0x46fe86
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.0048ac40
mov edx, dword [edi + 0x7d3c]
add esp, 0xc
cmp dword [edx + 0x303c], 0
jne 0x46fe7f
mov esi, edi
call fcn.0044c4e0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xb4]
cmp eax, ecx
jb 0x46fe97
sub eax, ecx
jmp 0x46fe9e
sub eax, ecx
add eax, 0x5265c00
mov ecx, dword [edi + 0xd1c]
imul ecx, ecx, 0x3e8
cmp eax, ecx
jbe 0x46feb8
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d3c]
cmp dword [eax + 0x1c], 0x36ee80
ja 0x46ff01
cmp dword [eax + 0x3034], 0x400
jae 0x46ff01
lea edx, [ebp - 0x4d0]
push 0x649a5c
push edx
call fcn.004f36b2
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 0x46ff0b
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d54]
test eax, eax
jle 0x47069b
xor ebx, ebx
mov dword [ebp - 0x30], eax
cmp ebx, 0x80
mov dword [ebp - 0x1c], ebx
jge 0x47069b
cmp dword [ebp - 0x30], 0
jle 0x47069b
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + ebx*4 + 0xe8]
test eax, eax
je 0x470090
mov ecx, dword [eax + 0x24]
cmp ecx, dword [edi + 0x15c]
jne 0x470090
mov edx, dword [eax + 0x28]
cmp edx, dword [edi + 0x160]
jne 0x470090
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [edi + 0x164]
jne 0x470090
sub dword [ebp - 0x30], 1
cmp dword [ebp - 0x70], 0
mov esi, dword [eax + 0x14]
lea ecx, [eax + 0x14]
je 0x470098
cmp esi, 0x19
jl 0x46ffbc
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.004ff920
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 0x46ff1e
cmp dword [eax + 0x1c], 0
je 0x470090
cmp esi, 0x28
jge 0x4700ae
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x46ffcc
mov dword [eax + 0x1c], 0
add ebx, 1
jmp 0x46ff1e
cmp dword [edi + 0x7d54], 0
jle 0x4703e2
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x4703ef
mov ecx, dword [edi + 0x98]
cmp ecx, 0xa
jb 0x4700e6
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62c5b0]
cmp dword [ecx*8 + 0x62c5b4], 0
je 0x470100
test edx, edx
setne al
jmp 0x470105
test edx, edx
sete al
test al, al
je 0x4703ef
mov al, byte [ebp - 0x29]
cmp al, 3
mov edx, dword [ebp - 0x68]
jne 0x47013c
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 [0x67aa1c]
add esp, 0x10
emms
jmp 0x47017e
cmp al, 1
jne 0x470165
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 [0x67aa3c]
add esp, 0x10
emms
jmp 0x47017e
mov ecx, dword [ebp - 0xfc]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x1cc]
push eax
push ecx
call fcn.004ff920
add esp, 0xc
cmp byte [edi + 0xde4], 0
mov ebx, dword [ebp - 0x98]
je 0x47019d
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 0x4701da
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x470220
cmp ebx, 1
jne 0x47021e
cmp byte [esi], 0xa0
jne 0x470209
cmp byte [esi + 1], 0x10
jne 0x470209
cmp byte [esi + 2], 0
jne 0x470209
cmp byte [esi + 3], 0
jne 0x470209
cmp byte [esi + 7], bl
jne 0x47021e
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x47021e
mov cl, bl
jmp 0x470220
cmp byte [esi + 3], 1
jne 0x47021e
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x47021e
mov cl, 1
jmp 0x470220
xor cl, cl
test eax, eax
movzx edx, cl
mov dword [ebp - 0x20], edx
jle 0x4703ef
mov eax, dword [edi + 0x7d54]
test eax, eax
jle 0x4703ef
xor ebx, ebx
mov edx, eax
cmp ebx, 0x80
mov dword [ebp - 0x1c], ebx
jge 0x4703ef
test edx, edx
jle 0x4703ef
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + ebx*4 + 0xe8]
test eax, eax
je 0x4703b5
mov ecx, dword [eax + 0x24]
cmp ecx, dword [edi + 0x15c]
jne 0x4703b5
mov ecx, dword [eax + 0x28]
cmp ecx, dword [edi + 0x160]
jne 0x4703b5
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [edi + 0x164]
jne 0x4703b5
mov esi, dword [eax + 0x14]
sub edx, 1
cmp dword [ebp - 0x20], 0
lea ecx, [eax + 0x14]
mov dword [ebp - 0x30], edx
je 0x4703bd
cmp esi, 0x19
jl 0x4702de
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.004ff920
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 0x470240
cmp dword [eax + 0x1c], 0
je 0x4703b5
cmp esi, 0x28
jge 0x4703d3
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x28], ecx
jmp 0x4702ee
mov dword [eax + 0x1c], 0
add ebx, 1
jmp 0x470240
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp byte [edi + 0x2a8], 0
jne 0x470410
cmp byte [edi + 0x2a9], 0
jne 0x470410
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
jmp 0x47069b
mov eax, dword [ebp - 0x80]
cmp eax, 1
jbe 0x47069b
mov ecx, dword [edi + 0x7cf8]
cmp ecx, 0xa
jb 0x47042c
mov ecx, 9
xor edx, edx
div dword [ecx*8 + 0x62c5b0]
cmp dword [ecx*8 + 0x62c5b4], 0
je 0x470446
test edx, edx
setne al
jmp 0x47044b
test edx, edx
sete al
test al, al
je 0x47069b
cmp dword [edi + 0xde0], 0
mov ebx, dword [ebp - 0x78]
je 0x470472
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 0x4704ac
mov cl, byte [esi + 4]
and cl, 0xc0
cmp cl, 0xc0
sete cl
jmp 0x4704f2
cmp ebx, 1
jne 0x4704f0
cmp byte [esi], 0xa0
jne 0x4704db
cmp byte [esi + 1], 0x10
jne 0x4704db
cmp byte [esi + 2], 0
jne 0x4704db
cmp byte [esi + 3], 0
jne 0x4704db
cmp byte [esi + 7], bl
jne 0x4704f0
mov dl, byte [esi + 8]
and dl, 0x1f
cmp dl, bl
je 0x4704f0
mov cl, bl
jmp 0x4704f2
cmp byte [esi + 3], 1
jne 0x4704f0
mov cl, byte [esi + 4]
and cl, 0x1f
cmp cl, 1
je 0x4704f0
mov cl, 1
jmp 0x4704f2
xor cl, cl
test eax, eax
movzx esi, cl
mov dword [ebp - 0x20], esi
jle 0x47069b
cmp byte [edi + 0x2a8], 0
je 0x4705b5
cmp dword [edi + 0x7d38], 0
je 0x47055e
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.0048ac40
mov eax, dword [edi + 0x7d38]
add esp, 0xc
cmp dword [eax + 0x303c], 0
jne 0x470557
mov esi, edi
call fcn.0044c4e0
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 0x4705ae
cmp dword [eax + 0x3034], 0x400
jae 0x4705ae
lea ecx, [ebp - 0x518]
push 0x649a5c
push ecx
call fcn.004f36b2
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 0x4705b5
or dword [edi + 0x2b4], 0x50
cmp byte [edi + 0x2a9], 0
je 0x47069b
cmp dword [edi + 0x7d3c], 0
je 0x470616
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.0048ac40
mov ecx, dword [edi + 0x7d3c]
add esp, 0xc
cmp dword [ecx + 0x303c], 0
jne 0x47060f
mov esi, edi
call fcn.0044c4e0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x74]
cmp eax, ecx
jb 0x470627
sub eax, ecx
jmp 0x47062e
sub eax, ecx
add eax, 0x5265c00
mov edx, dword [edi + 0xd1c]
imul edx, edx, 0x3e8
cmp eax, edx
jbe 0x470648
or dword [edi + 0x2b4], 0x80
mov eax, dword [edi + 0x7d3c]
cmp dword [eax + 0x1c], 0x36ee80
ja 0x470691
cmp dword [eax + 0x3034], 0x400
jae 0x470691
lea eax, [ebp - 0x4f4]
push 0x649a5c
push eax
call fcn.004f36b2
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 0x47069b
or dword [edi + 0x2b4], 0x80
cmp dword [edi + 0x7d58], 0
mov ebx, dword [ebp - 0x74]
jle 0x47088d
mov ecx, dword [ebp - 0xe4]
mov eax, ebx
sub eax, ecx
cmp ebx, ecx
jae 0x4706be
add eax, 0x5265c00
cmp eax, 0x78
jbe 0x47088d
cmp byte [ebp - 0x21], 0
mov dword [ebp - 0xe4], ebx
je 0x4706fb
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 [0x67aa40]
add esp, 0x10
emms
jmp 0x470721
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 [0x67aa50]
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 0x47088d
cmp dword [ebp - 0x30], 0
jle 0x47088d
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx + ecx*4 + 0x520]
test eax, eax
je 0x470885
mov edx, dword [eax + 0xc]
cmp edx, dword [edi + 0x15c]
jne 0x470885
mov edx, dword [eax + 0x10]
cmp edx, dword [edi + 0x160]
jne 0x470885
mov edx, dword [eax + 0x14]
cmp edx, dword [edi + 0x164]
jne 0x470885
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 0x60cda8
push 0xc8
lea eax, [ecx + eax + 0x2078]
push 0x6046b0
mov dword [ebp - 0x28], eax
add eax, 4
push 0x493e0
push eax
call fcn.004f5aa0
add esp, 0x1c
test esi, esi
mov ebx, eax
je 0x470847
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.004ff920
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 0x47077f
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 0x46cfa0
cmp byte [ebp - 0x21], 0
je 0x4708d0
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.0046aca0
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.004f9810
mov eax, dword [ebp - 0x2ec]
add esp, 0xc
cmp eax, ebx
je 0x47095a
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x3bc]
cmp eax, ebx
je 0x470973
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2965
add esp, 4
lea eax, [ebp - 0x484]
call fcn.0049a970
mov eax, dword [ebp - 0x354]
cmp eax, ebx
je 0x470997
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
lea eax, [ebp - 0x434]
call fcn.0049a970
mov esi, dword [edi + 0x7d38]
cmp esi, ebx
mov byte [edi + 0x2a8], bl
mov byte [edi + 0x2a9], bl
je 0x4709d9
call fcn.0048abe0
mov eax, dword [edi + 0x7d38]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d38], ebx
call fcn.0044c4e0
mov esi, dword [edi + 0x7d3c]
cmp esi, ebx
je 0x470a04
call fcn.0048abe0
mov eax, dword [edi + 0x7d3c]
push eax
call fcn.004d3cb6
add esp, 4
mov esi, edi
mov dword [edi + 0x7d3c], ebx
call fcn.0044c4e0
mov ecx, dword [ebp - 0x78]
cmp ecx, ebx
je 0x470a13
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [ebp - 0x98]
cmp ecx, ebx
je 0x470a25
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, dword [ebp - 0x1cc]
cmp eax, ebx
je 0x470a3e
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov ecx, dword [ebp - 0xcc]
cmp ecx, ebx
je 0x470a50
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [ebp - 0xf8]
cmp ecx, ebx
je 0x470a62
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, dword [ebp - 0x1f8]
cmp eax, ebx
je 0x470a7b
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x250]
cmp eax, ebx
je 0x470a94
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [edi + 0xcb0]
cmp eax, ebx
je 0x470aad
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x15c]
cmp eax, ebx
je 0x470ac6
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x2e8]
cmp eax, ebx
je 0x470adf
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x2bc]
cmp eax, ebx
je 0x470af8
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2965
add esp, 4
mov eax, dword [ebp - 0x1a0]
cmp eax, ebx
je 0x470b11
movzx ecx, byte [eax - 1]
sub eax, ecx
push eax
call fcn.004f2965
add esp, 4
mov edx, dword [ebp - 0x34]
push edx
call fcn.004d3cb6
mov eax, dword [ebp - 0x84]
add esp, 4
cmp eax, ebx
je 0x470b34
lea ecx, [edi + 0xa8]
push ecx
push eax
call fcn.0047c490
cmp dword [edi + 0x88], 0x120
ja 0x470b65
cmp dword [edi + 0x84], 0x160
jbe 0x470b65
mov eax, dword [ebp - 0x224]
cmp eax, ebx
je 0x470b65
movzx edx, byte [eax - 1]
sub eax, edx
push eax
call fcn.004f2965
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.0044d9e0
lea ecx, [ebp - 0xe0]
mov dword [ebp - 4], 0xffffffff
call fcn.004e3981
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