Function at 0x4060f0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xcc
lea ecx, [ebp - 0x58]
mov dword [esp], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._M_initialize_map_unsigned_int_
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x80]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
sar eax, 2
lea edx, [eax - 1]
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
sub esp, 4
shl edx, 7
mov dword [ebp - 0x78], 0
sar eax, 2
add edx, eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
sar eax, 2
add eax, edx
mov dword [esp], eax
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._M_initialize_map_unsigned_int_
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x40]
sub ecx, edi
sub edx, dword [ebp - 0x3c]
mov esi, ebx
sar ecx, 2
sub esi, eax
sub ecx, 1
sub esp, 4
sar edx, 2
shl ecx, 7
add ecx, edx
mov edx, dword [ebp - 0x78]
sar esi, 2
add ecx, esi
mov esi, dword [ebp - 0x6c]
test ecx, ecx
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x70]
jle 0x406270
mov dword [ebp - 0x8c], edi
jmp 0x40621f
add edx, 4
cmp edx, esi
je 0x406250
sub ecx, 1
je 0x406270
mov edi, dword [eax]
add eax, 4
cmp eax, ebx
mov dword [edx], edi
jne 0x406213
mov edi, dword [ebp - 0x8c]
add edx, 4
mov eax, dword [edi + 4]
add edi, 4
cmp edx, esi
mov dword [ebp - 0x8c], edi
lea ebx, [eax + 0x200]
jne 0x40621a
lea esi, [esi]
mov esi, dword [ebp - 0x90]
sub ecx, 1
mov edx, dword [esi + 4]
lea edi, [esi + 4]
mov dword [ebp - 0x90], edi
lea esi, [edx + 0x200]
jne 0x40621f
lea esi, [esi]
lea ecx, [ebp - 0x58]
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._Deque_base__
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.BGI__GetWindowDataPtr_HWND___
mov esi, dword [ebp + 0xc]
test eax, eax
mov ebx, eax
setne al
sub esi, 0x200
test al, al
mov byte [ebp - 0x8c], al
je 0x4062a2
cmp esi, 0xa
jbe 0x4062f0
cmp dword [ebp + 0xc], 0x84
je 0x406370
jbe 0x4063c0
cmp dword [ebp + 0xc], 0x102
je 0x406474
jbe 0x406500
cmp dword [ebp + 0xc], 0x112
je 0x406496
cmp dword [ebp + 0xc], 0x203
mov ebx, 1
je 0x406403
jmp 0x4063de
cmp byte [ebx + esi + 0x2c8], 0
lea eax, [esi + esi*4]
lea edi, [ebx + eax*8 + 0x110]
mov eax, dword [edi + 0x18]
je 0x406417
mov ecx, dword [edi + 0x20]
mov edx, dword [ebp + 0x14]
sub ecx, 4
sar edx, 0x10
cmp eax, ecx
je 0x406cae
test eax, eax
je 0x40632e
movzx ecx, word [ebp + 0x14]
mov word [eax + 2], dx
mov word [eax], cx
add eax, 4
mov dword [edi + 0x18], eax
movzx eax, word [ebp + 0x14]
mov word [ebx + 0x10e], dx
mov word [ebx + 0x10c], ax
mov eax, dword [ebx + esi*4 + 0x2d4]
test eax, eax
je 0x4062a2
mov dword [esp + 4], edx
movsx edx, word [ebp + 0x14]
mov dword [esp], edx
call eax
cmp dword [ebp + 0xc], 0x84
jne 0x4062af
nop
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], 0x84
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._DefWindowProcA_16
sub esp, 0x10
cmp eax, 1
je 0x4066ea
cmp byte [ebp - 0x8c], 0
je 0x4066ea
mov edx, dword [ebx + 0x10]
mov ebx, 2
mov esi, dword [edx - 0xc]
test esi, esi
cmovne ebx, eax
jmp 0x406403
cmp dword [ebp + 0xc], 0xf
je 0x4066f1
cmp dword [ebp + 0xc], 0x10
je 0x406460
cmp dword [ebp + 0xc], 2
je 0x4065c2
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._DefWindowProcA_16
sub esp, 0x10
mov ebx, eax
lea ecx, [ebp - 0x80]
call method.std::_Deque_base_tagPOINTS__std::allocator_tagPOINTS___._Deque_base__
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov ecx, dword [edi + 0x24]
mov edx, eax
sub ecx, dword [edi + 0x14]
sub edx, dword [edi + 0x1c]
sar ecx, 2
sub ecx, 1
sar edx, 2
shl ecx, 7
add ecx, edx
mov edx, dword [edi + 0x10]
sub edx, dword [edi + 8]
sar edx, 2
add ecx, edx
je 0x40630b
lea eax, [ebp - 0x80]
mov ecx, edi
mov dword [esp], eax
call method.std::deque_tagPOINTS__std::allocator_tagPOINTS___.operator_std::deque_tagPOINTS__std::allocator_tagPOINTS____const_
mov eax, dword [edi + 0x18]
sub esp, 4
jmp 0x40630b
cmp byte [ebx + 0xc5], 0
jne 0x406f2d
mov ebx, 1
jmp 0x406403
movsx eax, word [ebp + 0x14]
xor ebx, ebx
mov dword [esp + 8], eax
movsx eax, byte [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.cls_OnChar_HWND____char__int_
jmp 0x406403
movzx eax, word [ebp + 0x10]
cmp eax, 2
je 0x406c54
jle 0x406bf1
cmp eax, 3
je 0x4067ef
cmp eax, 4
jne 0x4063de
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0xc], 0x7fffffff
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._writeimagefile
jmp 0x406403
cmp dword [ebp + 0xc], 0x100
jne 0x4063de
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
movsx esi, word [ebp + 0x14]
shr ebx, 0x10
mov dword [esp], eax
mov dword [ebp - 0x8c], ebx
call sym.BGI__GetWindowDataPtr_HWND___
mov edi, eax
mov eax, dword [ebp + 0x10]
sub eax, 0xc
cmp eax, 0x6c
ja case.0x406535.13
jmp dword [eax*4 + 0x4944d0]
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x407604
test eax, eax
je 0x40655d
mov byte [eax], 0
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
add eax, 1
mov dword [edi + 0x2c], eax
cmp edx, eax
je 0x407556
test eax, eax
je 0x406575
mov byte [eax], 0x4d
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov eax, dword [edi + 0xd0]
mov dword [esp], eax
call sym._SetEvent_4
sub esp, 4
mov eax, dword [ebp + 0x10]
movzx esi, si
mov ebx, dword [ebp - 0x8c]
mov dword [esp + 4], 0x100
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
shl ebx, 0x10
or esi, ebx
xor ebx, ebx
mov dword [esp + 0xc], esi
mov dword [esp], eax
call sym._DefWindowProcA_16
sub esp, 0x10
jmp 0x406403
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [esp], eax
call sym.BGI__GetWindowDataPtr_HWND___
mov dword [esp + 4], 0x1388
mov edi, eax
mov eax, dword [eax + 0x304]
mov ebx, edi
mov dword [esp], eax
call sym._WaitForSingleObject_8
sub esp, 8
mov dword [esp], 6
add esi, 1
add ebx, 4
call sym._GetStockObject_4
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym._SelectObject_8
sub esp, 8
mov dword [esp], eax
call sym._DeleteObject_4
sub esp, 4
mov dword [esp], 0
call sym._GetStockObject_4
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym._SelectObject_8
sub esp, 8
mov dword [esp], eax
call sym._DeleteObject_4
mov eax, dword [ebx + 0xa8]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x98]
mov dword [esp], eax
call sym._SelectObject_8
sub esp, 8
mov dword [esp], eax
call sym._DeleteObject_4
mov eax, dword [ebx + 0x98]
sub esp, 4
mov dword [esp], eax
call sym._DeleteObject_4
sub esp, 4
cmp esi, 4
jne 0x4065ec
mov eax, dword [edi + 0x304]
xor ebx, ebx
mov dword [esp], eax
call sym._ReleaseMutex_4
mov eax, dword [edi + 0xe8]
sub esp, 4
mov dword [esp], eax
call sym._DeleteObject_4
mov eax, dword [edi + 0xd0]
sub esp, 4
mov dword [esp], eax
call sym._CloseHandle_4
mov eax, dword [edi + 0xd4]
sub esp, 4
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov dword [esp], 0
call sym._PostQuitMessage_4
sub esp, 4
jmp 0x406403
mov ebx, eax
jmp 0x406403
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.BGI__GetWindowDataPtr_HWND___
mov dword [esp + 4], 0xffffffff
mov ebx, eax
mov eax, dword [eax + 0x304]
mov dword [esp], eax
call sym._WaitForSingleObject_8
lea eax, [ebp - 0x58]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._BeginPaint_8
mov eax, dword [ebx + 0xbc]
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x48]
mov edx, dword [ebx + eax*4 + 0x9c]
mov eax, dword [ebp - 0x4c]
sub esp, 8
mov dword [esp + 8], 1
sub esi, ecx
mov dword [esp], edx
sub edi, eax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x8c], edx
call sym._DPtoLP_12
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x8c]
sub esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x88]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], 0xcc0020
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
call sym._BitBlt_36
lea eax, [ebp - 0x58]
sub esp, 0x24
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._EndPaint_8
mov eax, dword [ebx + 0x304]
xor ebx, ebx
sub esp, 8
mov dword [esp], eax
call sym._ReleaseMutex_4
sub esp, 4
jmp 0x406403
fld dword [0x494684]
xor ebx, ebx
fst qword [esp + 0x14]
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], 0
fstp qword [esp + 0xc]
mov dword [esp + 0x30], eax
fld dword [0x494690]
mov dword [esp + 0x28], 0x7fffffff
fstp qword [esp + 4]
mov dword [esp + 0x24], 0x7fffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp], 0
call sym._printimage
jmp 0x406403
lea eax, [ebp - 0x58]
mov dword [esp], eax
lea ecx, [edi + 0x14]
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
sub esp, 4
cmp eax, edx
je 0x4083e7
test eax, eax
je 0x406879
mov byte [eax], 0x43
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
jmp case.0x406535.13
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x42
sub esp, 4
lea eax, [ebp - 0x58]
mov ecx, edi
mov dword [esp], eax
call method.std::deque_char__std::allocator_char___.push_back_char_const_
sub esp, 4
jmp case.0x406535.13
lea eax, [edi + 0x14]
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0x9c], eax
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x408202
test eax, eax
je 0x4068d8
mov byte [eax], 0
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov byte [ebp - 0x58], 0x41
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.std::deque_char__std::allocator_char___.push_back_char_const_
sub esp, 4
jmp case.0x406535.13
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x40
sub esp, 4
jmp 0x40689f
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x3f
sub esp, 4
jmp 0x40689f
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x3e
sub esp, 4
jmp 0x40689f
lea eax, [edi + 0x14]
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0x9c], eax
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x40801d
test eax, eax
je 0x40697c
mov byte [eax], 0
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov byte [ebp - 0x58], 0x3d
jmp 0x4068e2
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x407e32
test eax, eax
je 0x4069ac
mov byte [eax], 0
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
add eax, 1
mov dword [edi + 0x2c], eax
cmp eax, edx
je 0x4075ad
test eax, eax
je 0x406879
mov byte [eax], 0x3c
mov eax, dword [edi + 0x2c]
jmp 0x406879
lea eax, [ebp - 0x58]
mov dword [esp], eax
lea ecx, [edi + 0x14]
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
sub esp, 4
cmp eax, edx
je 0x40712f
test eax, eax
je 0x406879
mov byte [eax], 0x3b
mov eax, dword [edi + 0x2c]
jmp 0x406879
lea eax, [ebp - 0x58]
mov dword [esp], eax
lea ecx, [edi + 0x14]
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
sub esp, 4
cmp eax, edx
je 0x408810
test eax, eax
je 0x406879
mov byte [eax], 0x52
mov eax, dword [edi + 0x2c]
jmp 0x406879
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x408625
test eax, eax
je 0x406a60
mov byte [eax], 0
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
add eax, 1
mov dword [edi + 0x2c], eax
cmp edx, eax
je 0x4077ef
test eax, eax
je 0x406575
mov byte [eax], 0x50
mov eax, dword [edi + 0x2c]
jmp 0x406575
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x407314
test eax, eax
je 0x406aa2
mov byte [eax], 0
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
add eax, 1
mov dword [edi + 0x2c], eax
cmp eax, edx
je 0x408867
test eax, eax
je 0x406879
mov byte [eax], 0x53
mov eax, dword [edi + 0x2c]
jmp 0x406879
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x4f
sub esp, 4
jmp 0x40689f
lea eax, [ebp - 0x58]
mov dword [esp], eax
lea ecx, [edi + 0x14]
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
sub esp, 4
cmp eax, edx
je 0x4074ff
test eax, eax
je 0x406575
mov byte [eax], 0x4b
mov eax, dword [edi + 0x2c]
jmp 0x406575
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x47
sub esp, 4
jmp 0x40689f
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x49
sub esp, 4
jmp 0x40689f
lea eax, [edi + 0x14]
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0x9c], eax
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x40843e
test eax, eax
je 0x406b80
mov byte [eax], 0
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov byte [ebp - 0x58], 0x4c
jmp 0x4068e2
lea eax, [ebp - 0x58]
add edi, 0x14
mov dword [esp], eax
mov ecx, edi
mov byte [ebp - 0x58], 0
call method.std::deque_char__std::allocator_char___.push_back_char_const_
mov byte [ebp - 0x58], 0x51
sub esp, 4
jmp 0x40689f
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x406f44
test eax, eax
je 0x406bd0
mov byte [eax], 0
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
add eax, 1
mov dword [edi + 0x2c], eax
cmp eax, edx
je 0x406d44
test eax, eax
je 0x406575
mov byte [eax], 0x48
mov eax, dword [edi + 0x2c]
jmp 0x406575
cmp eax, 1
jne 0x4063de
fld dword [0x494684]
xor ebx, ebx
fst qword [esp + 0x14]
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], 0
fstp qword [esp + 0xc]
mov dword [esp + 0x30], eax
fld dword [0x494688]
mov dword [esp + 0x28], 0x7fffffff
fstp qword [esp + 4]
mov dword [esp + 0x24], 0x7fffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp], 0
call sym._printimage
jmp 0x406403
fld dword [0x494684]
xor ebx, ebx
fst qword [esp + 0x14]
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], 0
fstp qword [esp + 0xc]
mov dword [esp + 0x30], eax
fld dword [0x49468c]
mov dword [esp + 0x28], 0x7fffffff
fstp qword [esp + 4]
mov dword [esp + 0x24], 0x7fffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp], 0
call sym._printimage
jmp 0x406403
mov ecx, dword [edi + 0x24]
sub ecx, dword [edi]
mov eax, dword [edi + 4]
sar ecx, 2
sub eax, ecx
mov ecx, dword [edi + 0x24]
cmp eax, 1
ja 0x406ceb
mov ecx, edi
mov dword [esp + 4], 0
mov dword [esp], 1
mov dword [ebp - 0x90], edx
call method.std::deque_tagPOINTS__std::allocator_tagPOINTS___._M_reallocate_map_unsigned_int__bool_
mov ecx, dword [edi + 0x24]
mov edx, dword [ebp - 0x90]
sub esp, 8
mov dword [esp], 0x200
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x94]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x406d24
movzx ecx, word [ebp + 0x14]
mov word [eax + 2], dx
mov word [eax], cx
mov eax, dword [edi + 0x24]
lea ecx, [eax + 4]
mov dword [edi + 0x24], ecx
mov eax, dword [eax + 4]
lea ecx, [eax + 0x200]
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], ecx
mov dword [edi + 0x18], eax
jmp 0x406334
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x406dae
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x406d8e
mov byte [eax], 0x48
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [edi + 0x2c], eax
jmp 0x40657b
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x406e8f
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x406e57
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x406e20
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x406d69
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x406e20
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x406e20
test edx, edx
je 0x406f1e
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x406efd
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x406e20
call method.std.__throw_bad_alloc__
mov dword [ebp - 0x94], 3
jmp 0x406ea8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.BGI__GetWindowDataPtr_HWND___
mov dword [esp], 0
call sym._exit
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x406fb4
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x406f8e
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x34], edx
lea edx, [eax + 0x1ff]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
jmp 0x406bd6
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407095
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x40705d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407026
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x406f69
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407026
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x407026
test edx, edx
je 0x407123
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407107
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x407026
mov dword [ebp - 0x94], 3
jmp 0x4070b2
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407199
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407179
mov byte [eax], 0x3b
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [edi + 0x2c], eax
jmp case.0x406535.13
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x40727a
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x407242
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40720b
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407154
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40720b
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x40720b
test edx, edx
je 0x407308
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4072ec
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x40720b
mov dword [ebp - 0x94], 3
jmp 0x407297
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407384
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x40735e
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x34], edx
lea edx, [eax + 0x1ff]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
jmp 0x406aa8
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407465
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x40742d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4073f6
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407339
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4073f6
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4073f6
test edx, edx
je 0x4074f3
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4074d7
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x4073f6
mov dword [ebp - 0x94], 3
jmp 0x407482
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407b3c
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x406d8e
mov byte [eax], 0x4b
jmp 0x406d8e
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407846
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x406d8e
mov byte [eax], 0x4d
jmp 0x406d8e
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407cb7
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407179
mov byte [eax], 0x3c
jmp 0x407179
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407674
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x40764e
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x34], edx
lea edx, [eax + 0x1ff]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
jmp 0x406563
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407755
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x40771d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4076e6
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407629
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4076e6
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4076e6
test edx, edx
je 0x4077e3
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4077c7
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x4076e6
mov dword [ebp - 0x94], 3
jmp 0x407772
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x4079c1
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x406d8e
mov byte [eax], 0x50
jmp 0x406d8e
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407927
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x4078ef
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4078b8
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x40757f
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4078b8
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4078b8
test edx, edx
je 0x4079b5
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407999
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x4078b8
mov dword [ebp - 0x94], 3
jmp 0x407944
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407aa2
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x407a6a
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407a33
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407818
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407a33
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x407a33
test edx, edx
je 0x407b30
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407b14
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x407a33
mov dword [ebp - 0x94], 3
jmp 0x407abf
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407c1d
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x407be5
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407bae
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407528
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407bae
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x407bae
test edx, edx
je 0x407cab
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407c8f
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x407bae
mov dword [ebp - 0x94], 3
jmp 0x407c3a
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407d98
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x407d60
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407d29
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x4075d6
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407d29
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x407d29
test edx, edx
je 0x407e26
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407e0a
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x407d29
mov dword [ebp - 0x94], 3
jmp 0x407db5
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x407ea2
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407e7c
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x34], edx
lea edx, [eax + 0x1ff]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
jmp 0x4069b2
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x407f83
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x407f4b
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407f14
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x407e57
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407f14
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x407f14
test edx, edx
je 0x408011
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x407ff5
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x407f14
mov dword [ebp - 0x94], 3
jmp 0x407fa0
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0xa0], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x408087
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x408067
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [edi + 0x2c], eax
jmp 0x406982
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x408168
mov eax, edx
mov ebx, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408130
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4080f9
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408042
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4080f9
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4080f9
test edx, edx
je 0x4081f6
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4081da
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x4080f9
mov dword [ebp - 0x94], 3
jmp 0x408185
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0xa0], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x40826c
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x40824c
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [edi + 0x2c], eax
jmp 0x4068de
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x40834d
mov eax, edx
mov ebx, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408315
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4082de
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408227
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4082de
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4082de
test edx, edx
je 0x4083db
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4083bf
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x4082de
mov dword [ebp - 0x94], 3
jmp 0x40836a
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x4088be
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407179
mov byte [eax], 0x43
jmp 0x407179
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x18]
mov ebx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xa0], ecx
mov ecx, eax
sub eax, ebx
sar eax, 2
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x4084aa
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x40848a
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov dword [edi + 0x2c], eax
jmp 0x406b86
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x40858b
mov eax, edx
mov ebx, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408553
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40851c
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408465
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40851c
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x40851c
test edx, edx
je 0x408619
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4085fd
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x40851c
mov dword [ebp - 0x94], 3
jmp 0x4085a8
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x408695
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x40866f
mov byte [eax], 0
mov eax, dword [edi + 0x38]
lea edx, [eax + 4]
mov dword [edi + 0x38], edx
mov eax, dword [eax + 4]
lea edx, [eax + 0x200]
mov dword [edi + 0x34], edx
lea edx, [eax + 0x1ff]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
jmp 0x406a66
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x408776
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x40873e
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408707
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x40864a
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408707
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x408707
test edx, edx
je 0x408804
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4087e8
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x408707
mov dword [ebp - 0x94], 3
jmp 0x408793
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x408a39
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407179
mov byte [eax], 0x52
jmp 0x407179
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov ecx, eax
mov dword [ebp - 0x94], eax
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x9c], ebx
mov ebx, edx
sub ebx, eax
cmp ebx, 1
jbe 0x408bb4
mov dword [esp], 0x200
mov dword [ebp - 0x90], ecx
call sym.operator_new_unsigned_int_
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x407179
mov byte [eax], 0x53
jmp 0x407179
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x40899f
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408967
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408930
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408410
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408930
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x408930
test edx, edx
je 0x408a2d
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408a11
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x408930
mov dword [ebp - 0x94], 3
jmp 0x4089bc
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x408b1a
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408ae2
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408aab
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408839
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408aab
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x408aab
test edx, edx
je 0x408ba8
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408b8c
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x408aab
mov dword [ebp - 0x94], 3
jmp 0x408b37
mov ecx, dword [edi + 0x28]
mov eax, dword [ebp - 0x94]
sub eax, ecx
sar eax, 2
lea ebx, [eax + 1]
add eax, 2
mov dword [ebp - 0x90], eax
add eax, eax
cmp edx, eax
mov dword [ebp - 0x98], ebx
jbe 0x408c95
mov eax, edx
mov ebx, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
cmp ecx, eax
mov dword [ebp - 0x90], eax
jbe 0x408c5d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408c26
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
mov dword [edi + 0x28], ecx
mov eax, dword [ecx]
lea edx, [ecx + ebx*4 - 4]
mov dword [edi + 0x38], edx
mov ecx, edx
mov dword [edi + 0x20], eax
add eax, 0x200
mov dword [edi + 0x24], eax
mov eax, dword [edx]
mov dword [edi + 0x30], eax
add eax, 0x200
mov dword [edi + 0x34], eax
jmp 0x408890
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
lea edx, [eax + ebx*4]
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408c26
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x408c26
test edx, edx
je 0x408d23
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x406f19
mov eax, dword [ebp - 0x94]
shl eax, 2
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ecx, dword [edi + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x90]
shr eax, 1
lea eax, [ebx + eax*4]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x38]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x408d07
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memmove
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym.operator_delete_void_
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], eax
jmp 0x408c26
mov dword [ebp - 0x94], 3
jmp 0x408cb2