Function at 0x402c60
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 0x402de0
mov dword [ebp - 0x8c], edi
jmp 0x402d8f
add edx, 4
cmp edx, esi
je 0x402dc0
sub ecx, 1
je 0x402de0
mov edi, dword [eax]
add eax, 4
cmp eax, ebx
mov dword [edx], edi
jne 0x402d83
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 0x402d8a
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 0x402d8f
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 0x402e12
cmp esi, 0xa
jbe 0x402e60
cmp dword [ebp + 0xc], 0x84
je 0x402ee0
jbe 0x402f30
cmp dword [ebp + 0xc], 0x102
je 0x402fe4
jbe 0x403070
cmp dword [ebp + 0xc], 0x112
je 0x403006
cmp dword [ebp + 0xc], 0x203
mov ebx, 1
je 0x402f73
jmp 0x402f4e
cmp byte [ebx + esi + 0x2c8], 0
lea eax, [esi + esi*4]
lea edi, [ebx + eax*8 + 0x110]
mov eax, dword [edi + 0x18]
je 0x402f87
mov ecx, dword [edi + 0x20]
mov edx, dword [ebp + 0x14]
sub ecx, 4
sar edx, 0x10
cmp eax, ecx
je 0x40381e
test eax, eax
je 0x402e9e
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 0x402e12
mov dword [esp + 4], edx
movsx edx, word [ebp + 0x14]
mov dword [esp], edx
call eax
cmp dword [ebp + 0xc], 0x84
jne 0x402e1f
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 0x40325a
cmp byte [ebp - 0x8c], 0
je 0x40325a
mov edx, dword [ebx + 0x10]
mov ebx, 2
mov esi, dword [edx - 0xc]
test esi, esi
cmovne ebx, eax
jmp 0x402f73
cmp dword [ebp + 0xc], 0xf
je 0x403261
cmp dword [ebp + 0xc], 0x10
je 0x402fd0
cmp dword [ebp + 0xc], 2
je 0x403132
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 0x402e7b
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 0x402e7b
cmp byte [ebx + 0xc5], 0
jne 0x403a9d
mov ebx, 1
jmp 0x402f73
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 0x402f73
movzx eax, word [ebp + 0x10]
cmp eax, 2
je 0x4037c4
jle 0x403761
cmp eax, 3
je 0x40335f
cmp eax, 4
jne 0x402f4e
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 0x402f73
cmp dword [ebp + 0xc], 0x100
jne 0x402f4e
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.0x4030a5.13
jmp dword [eax*4 + 0x494374]
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x404174
test eax, eax
je 0x4030cd
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 0x4040c6
test eax, eax
je 0x4030e5
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 0x402f73
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 0x40315c
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 0x402f73
mov ebx, eax
jmp 0x402f73
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 0x402f73
fld dword [0x494528]
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 [0x494534]
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 0x402f73
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 0x404f57
test eax, eax
je 0x4033e9
mov byte [eax], 0x43
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
jmp case.0x4030a5.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.0x4030a5.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 0x404d72
test eax, eax
je 0x403448
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.0x4030a5.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 0x40340f
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 0x40340f
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 0x40340f
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 0x404b8d
test eax, eax
je 0x4034ec
mov byte [eax], 0
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov byte [ebp - 0x58], 0x3d
jmp 0x403452
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x4049a2
test eax, eax
je 0x40351c
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 0x40411d
test eax, eax
je 0x4033e9
mov byte [eax], 0x3c
mov eax, dword [edi + 0x2c]
jmp 0x4033e9
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 0x403c9f
test eax, eax
je 0x4033e9
mov byte [eax], 0x3b
mov eax, dword [edi + 0x2c]
jmp 0x4033e9
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 0x405380
test eax, eax
je 0x4033e9
mov byte [eax], 0x52
mov eax, dword [edi + 0x2c]
jmp 0x4033e9
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x405195
test eax, eax
je 0x4035d0
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 0x40435f
test eax, eax
je 0x4030e5
mov byte [eax], 0x50
mov eax, dword [edi + 0x2c]
jmp 0x4030e5
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x403e84
test eax, eax
je 0x403612
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 0x4053d7
test eax, eax
je 0x4033e9
mov byte [eax], 0x53
mov eax, dword [edi + 0x2c]
jmp 0x4033e9
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 0x40340f
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 0x40406f
test eax, eax
je 0x4030e5
mov byte [eax], 0x4b
mov eax, dword [edi + 0x2c]
jmp 0x4030e5
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 0x40340f
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 0x40340f
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 0x404fae
test eax, eax
je 0x4036f0
mov byte [eax], 0
mov eax, dword [edi + 0x2c]
add eax, 1
mov dword [edi + 0x2c], eax
mov byte [ebp - 0x58], 0x4c
jmp 0x403452
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 0x40340f
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
lea edx, [ebx - 1]
cmp eax, edx
je 0x403ab4
test eax, eax
je 0x403740
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 0x4038b4
test eax, eax
je 0x4030e5
mov byte [eax], 0x48
mov eax, dword [edi + 0x2c]
jmp 0x4030e5
cmp eax, 1
jne 0x402f4e
fld dword [0x494528]
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 [0x49452c]
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 0x402f73
fld dword [0x494528]
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 [0x494530]
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 0x402f73
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 0x40385b
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 0x403894
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 0x402ea4
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 0x40391e
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 0x4038fe
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 0x4030eb
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 0x4039ff
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 0x4039c7
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x403990
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 0x4038d9
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 0x403990
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x403990
test edx, edx
je 0x403a8e
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x403a6d
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 0x403990
call method.std.__throw_bad_alloc__
mov dword [ebp - 0x94], 3
jmp 0x403a18
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 0x403b24
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 0x403afe
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 0x403746
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 0x403c05
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 0x403bcd
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x403b96
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 0x403ad9
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 0x403b96
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x403b96
test edx, edx
je 0x403c93
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x403c77
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 0x403b96
mov dword [ebp - 0x94], 3
jmp 0x403c22
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 0x403d09
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 0x403ce9
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.0x4030a5.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 0x403dea
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 0x403db2
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x403d7b
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 0x403cc4
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 0x403d7b
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x403d7b
test edx, edx
je 0x403e78
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x403e5c
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 0x403d7b
mov dword [ebp - 0x94], 3
jmp 0x403e07
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 0x403ef4
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 0x403ece
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 0x403618
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 0x403fd5
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 0x403f9d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x403f66
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 0x403ea9
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 0x403f66
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x403f66
test edx, edx
je 0x404063
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404047
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 0x403f66
mov dword [ebp - 0x94], 3
jmp 0x403ff2
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 0x4046ac
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 0x4038fe
mov byte [eax], 0x4b
jmp 0x4038fe
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 0x4043b6
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 0x4038fe
mov byte [eax], 0x4d
jmp 0x4038fe
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 0x404827
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 0x403ce9
mov byte [eax], 0x3c
jmp 0x403ce9
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 0x4041e4
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 0x4041be
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 0x4030d3
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 0x4042c5
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 0x40428d
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404256
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 0x404199
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 0x404256
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404256
test edx, edx
je 0x404353
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404337
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 0x404256
mov dword [ebp - 0x94], 3
jmp 0x4042e2
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 0x404531
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 0x4038fe
mov byte [eax], 0x50
jmp 0x4038fe
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 0x404497
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 0x40445f
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404428
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 0x4040ef
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 0x404428
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404428
test edx, edx
je 0x404525
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404509
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 0x404428
mov dword [ebp - 0x94], 3
jmp 0x4044b4
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 0x404612
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 0x4045da
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4045a3
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 0x404388
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 0x4045a3
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4045a3
test edx, edx
je 0x4046a0
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404684
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 0x4045a3
mov dword [ebp - 0x94], 3
jmp 0x40462f
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 0x40478d
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 0x404755
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40471e
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 0x404098
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 0x40471e
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x40471e
test edx, edx
je 0x40481b
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x4047ff
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 0x40471e
mov dword [ebp - 0x94], 3
jmp 0x4047aa
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 0x404908
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 0x4048d0
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404899
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 0x404146
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 0x404899
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404899
test edx, edx
je 0x404996
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x40497a
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 0x404899
mov dword [ebp - 0x94], 3
jmp 0x404925
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 0x404a12
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 0x4049ec
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 0x403522
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 0x404af3
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 0x404abb
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404a84
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 0x4049c7
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 0x404a84
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404a84
test edx, edx
je 0x404b81
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404b65
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 0x404a84
mov dword [ebp - 0x94], 3
jmp 0x404b10
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 0x404bf7
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 0x404bd7
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 0x4034f2
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 0x404cd8
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 0x404ca0
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404c69
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 0x404bb2
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 0x404c69
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404c69
test edx, edx
je 0x404d66
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404d4a
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 0x404c69
mov dword [ebp - 0x94], 3
jmp 0x404cf5
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 0x404ddc
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 0x404dbc
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 0x40344e
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 0x404ebd
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 0x404e85
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x404e4e
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 0x404d97
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 0x404e4e
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x404e4e
test edx, edx
je 0x404f4b
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x404f2f
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 0x404e4e
mov dword [ebp - 0x94], 3
jmp 0x404eda
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 0x40542e
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 0x403ce9
mov byte [eax], 0x43
jmp 0x403ce9
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 0x40501a
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 0x404ffa
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 0x4036f6
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 0x4050fb
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 0x4050c3
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40508c
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 0x404fd5
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 0x40508c
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x40508c
test edx, edx
je 0x405189
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x40516d
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 0x40508c
mov dword [ebp - 0x94], 3
jmp 0x405118
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 0x405205
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 0x4051df
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 0x4035d6
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 0x4052e6
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 0x4052ae
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x405277
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 0x4051ba
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 0x405277
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x405277
test edx, edx
je 0x405374
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x405358
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 0x405277
mov dword [ebp - 0x94], 3
jmp 0x405303
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 0x4055a9
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 0x403ce9
mov byte [eax], 0x52
jmp 0x403ce9
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 0x405724
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 0x403ce9
mov byte [eax], 0x53
jmp 0x403ce9
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 0x40550f
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 0x4054d7
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4054a0
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 0x404f80
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 0x4054a0
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x4054a0
test edx, edx
je 0x40559d
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x405581
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 0x4054a0
mov dword [ebp - 0x94], 3
jmp 0x40552c
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 0x40568a
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 0x405652
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x40561b
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 0x4053a9
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 0x40561b
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x40561b
test edx, edx
je 0x405718
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x4056fc
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 0x40561b
mov dword [ebp - 0x94], 3
jmp 0x4056a7
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 0x405805
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 0x4057cd
mov eax, dword [ebp - 0x94]
add eax, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x405796
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 0x405400
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 0x405796
shl eax, 2
sub edx, eax
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memmove
jmp 0x405796
test edx, edx
je 0x405893
lea eax, [edx + edx + 2]
cmp eax, 0x3fffffff
mov dword [ebp - 0x94], eax
ja 0x403a89
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 0x405877
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 0x405796
mov dword [ebp - 0x94], 3
jmp 0x405822