Function at 0x454770
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x621533
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x220
push ebx
push ebp
push esi
push edi
mov esi, ecx
push str.One_Button_Tech_Tree_Screen
mov dword [esp + 0x30], esi
call fcn.004c0920
xor ebx, ebx
or ecx, 0xffffffff
mov dword [esi + 0x7fc], ebx
mov dword [esi + 0x800], ebx
mov dword [esi + 0x804], ebx
mov dword [esi + 0x808], ebx
mov dword [esi + 0x810], ebx
mov dword [esi + 0x814], ebx
mov dword [esi + 0x818], ebx
mov dword [esi + 0x81c], ecx
mov dword [esi + 0x820], ebx
mov dword [esi + 0x824], ebx
mov dword [esi + 0x828], ebx
mov dword [esi + 0x82c], ebx
mov dword [esi + 0x830], ebx
mov dword [esi + 0x834], ebx
mov dword [esi + 0x838], ebx
mov dword [esi + 0x83c], ebx
mov dword [esi + 0x840], ebx
mov dword [esi + 0xdbc], ebx
mov dword [esi + 0xdc0], ebx
mov dword [esi + 0xdc4], ebx
mov dword [esi + 0xdc8], ebx
mov dword [esi + 0xdcc], ebx
mov dword [esi + 0xdd0], ebx
mov dword [esi + 0xdd4], ebx
mov dword [esi + 0xdd8], ebx
mov dword [esi + 0xddc], ebx
mov dword [esi + 0xde0], ebx
mov dword [esi + 0xde4], ebx
mov dword [esi + 0xde8], ebx
mov dword [esi + 0xdec], ebx
mov dword [esi + 0xdf0], ebx
mov dword [esi + 0xdf4], ebx
mov dword [esi + 0xdf8], ebx
mov dword [esi + 0xdfc], ebx
mov dword [esi + 0xe00], ebx
mov dword [esi + 0xe04], ebx
mov dword [esi + 0xe08], ebx
mov dword [esi + 0xe0c], ebx
mov eax, 0xbf800000
mov dword [esi + 0xe10], ebx
mov dword [esi + 0xe14], eax
mov dword [esi + 0xe18], eax
mov dword [esi + 0xe1c], ebx
mov dword [esi + 0xe20], ebx
mov dword [esi + 0xe24], ebx
mov dword [esi + 0xe28], ebx
mov dword [esi + 0xe2c], ebx
mov dword [esi + 0xe30], 0x113
mov dword [esi + 0xe34], 0x28
mov dword [esi + 0xe38], ebx
mov dword [esi + 0xe3c], ebx
mov dword [esi + 0xe40], ebx
mov dword [esi + 0xe44], ebx
mov dword [esi + 0xe48], ebx
mov dword [esi + 0xe4c], ebx
mov dword [esi + 0xe50], ebx
mov dword [esi + 0xe54], ebx
mov dword [esi + 0xe58], ebx
mov dword [esi + 0xe5c], ebx
mov dword [esi + 0xe60], ebx
mov dword [esi + 0xe64], ebx
mov dword [esi + 0xe68], ebx
mov dword [esi + 0xe6c], ebx
mov dword [esi + 0xe70], ebx
mov dword [esi + 0xe74], ebx
mov dword [esp + 0x238], ebx
mov dword [esi + 0xe78], ebx
mov dword [esi + 0xe7c], ebx
mov dword [esi + 0xe80], ebx
mov dword [esi + 0xe84], ebx
mov dword [esi + 0xe88], ebx
mov dword [esi + 0xe8c], ebx
mov dword [esi + 0xe90], ebx
mov dword [esi + 0xe94], ebx
mov dword [esi + 0xe98], ebx
mov dword [esi + 0xe9c], ebx
mov dword [esi + 0xea0], ebx
mov dword [esi + 0xea4], ebx
mov dword [esi + 0xea8], ebx
mov dword [esi + 0xeac], ebx
mov dword [esi + 0xeb0], ebx
mov dword [esi + 0xeb4], ebx
mov dword [esi + 0xeb8], ebx
mov dword [esi + 0xebc], ebx
mov dword [esi + 0xec0], ebx
mov dword [esi + 0xec4], ebx
mov dword [esi + 0xec8], ebx
mov dword [esi + 0xecc], ebx
mov dword [esi + 0xed0], ebx
mov dword [esi + 0xed4], ebx
mov dword [esi + 0xed8], ebx
mov dword [esi + 0xedc], ebx
mov dword [esi + 0xee0], ebx
mov dword [esi + 0xee8], ebx
mov dword [esi + 0xeec], ebx
mov dword [esi + 0xf08], ebx
mov dword [esi + 0xf0c], ebx
mov dword [esi + 0xf10], ebx
mov dword [esi + 0xf14], ebx
mov dword [esi + 0x1c40], ecx
mov dword [esi + 0x1c4c], 0xc
mov dword [esi + 0x1c50], ebx
mov dword [esi + 0x1c54], ebx
mov dword [esi + 0x1c58], ebx
mov dword [esi + 0x1c5c], ebx
mov dword [esi + 0x1c60], ebx
mov dword [esi + 0x1c64], ebx
mov dword [esi + 0x1c68], ebx
mov edi, dword [esp + 0x240]
mov dword [esi + 0x1c6c], ebx
mov dword [esi + 0x1c70], ebx
mov dword [esi + 0x1c74], ebx
mov dword [esi + 0x1c78], ebx
mov dword [esi + 0x1c7c], ebx
mov dword [esi + 0x1c80], ebx
mov dword [esi + 0x1c84], ebx
mov dword [esi + 0x1cd8], ebx
mov dword [esi + 0x1cdc], ebx
mov dword [esi], 0x639a3c
mov ecx, edi
mov byte [esp + 0x1b0], bl
mov dword [esi + 0x80c], edi
call fcn.005d76c0
mov ebp, eax
mov ecx, edi
mov dword [esp + 0x24], ebp
call fcn.005d74c0
push 1
push 0xc357
push str.scr6
mov dword [esp + 0x34], eax
push eax
mov eax, dword [edi]
push ebp
push edi
mov ecx, edi
call dword [eax + 0xdc]
push eax
mov ecx, esi
call fcn.004573a0
test eax, eax
jne 0x454ad4
mov dword [esi + 0xdc], 1
jmp 0x456714
mov eax, dword [esp + 0x244]
cmp eax, ebx
je 0x454b79
mov ecx, dword [esp + 0x248]
mov dword [esi + 0x818], eax
cmp ecx, ebx
mov ecx, dword [0x6833d0]
mov edi, dword [ecx + 0x424]
jge 0x454b29
xor edx, edx
mov ecx, edi
mov dl, byte [eax + 0x15d]
push edx
call fcn.005e7e90
cmp eax, ebx
mov dword [esi + 0x810], eax
jne 0x454b52
mov dword [esi + 0xdc], 1
jmp 0x456714
xor edx, edx
mov ecx, edi
mov dl, byte [eax + 0x15d]
push edx
call fcn.005e7e90
cmp eax, ebx
mov dword [esi + 0x810], eax
jne 0x454b52
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, dword [esi + 0x818]
push ecx
mov ecx, eax
call fcn.005a7800
mov edx, dword [esi + 0x818]
xor eax, eax
mov al, byte [edx + 0x15d]
mov dword [esi + 0x81c], eax
jmp 0x454bff
mov edi, dword [esp + 0x248]
cmp edi, ebx
jge 0x454bc3
mov ecx, dword [0x6833d0]
mov ecx, dword [ecx + 0x424]
cmp ecx, ebx
jne 0x454ba3
mov dword [esi + 0xdc], 1
jmp 0x456714
push 1
call fcn.005e7e90
cmp eax, ebx
mov dword [esi + 0x810], eax
jne 0x454bee
mov dword [esi + 0xdc], 1
jmp 0x456714
mov edx, dword [0x6833d0]
push edi
mov ecx, dword [edx + 0x424]
call fcn.005e7e90
cmp eax, ebx
mov dword [esi + 0x810], eax
jne 0x454bee
mov dword [esi + 0xdc], 1
jmp 0x456714
push 3
push 5
mov ecx, eax
call fcn.005a7e00
mov dword [esi + 0x81c], edi
lea edi, [esi + 0x844]
mov ecx, 0x32
xor eax, eax
mov dword [esi + 0x814], ebx
rep stosd dword es:[edi], eax
lea edi, [esi + 0x90c]
mov ecx, 0x96
rep stosd dword es:[edi], eax
lea edi, [esi + 0xb64]
mov ecx, 0x96
rep stosd dword es:[edi], eax
lea edi, [esi + 0xef0]
mov ecx, 6
rep stosd dword es:[edi], eax
lea ebp, [esi + 0x11e8]
mov ecx, 5
mov eax, ebp
mov byte [eax - 0x2d0], bl
mov byte [eax], bl
add eax, 0x78
dec ecx
jne 0x454c48
mov byte [esi + 0x1170], bl
mov byte [esi + 0x1440], bl
lea eax, [esi + 0x1cb0]
mov edx, 5
mov ecx, 2
mov dword [eax - 0x28], ebx
mov dword [eax], ebx
add eax, 4
dec ecx
jne 0x454c72
dec edx
jne 0x454c6d
lea eax, [esi + 0x1ce0]
xor ecx, ecx
xor edx, edx
mov edi, dword [sym.imp.GDI32.dll_GetNearestPaletteIndex]
mov dword [eax], ecx
push 0xde9c84
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
lea eax, [esi + 0x1cf0]
mov dword [esi + 0x1cf0], edx
mov dword [eax + 4], edx
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1cf8], eax
mov eax, dword [esi + 0x20]
push 0xefceb5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1cfc], eax
mov eax, dword [esi + 0x20]
push 0x8c8cff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d00], eax
mov eax, dword [esi + 0x20]
push 0xc0cce3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d04], eax
mov eax, dword [esi + 0x20]
push 0x6badff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d08], eax
mov eax, dword [esi + 0x20]
push 0xbde79c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d0c], eax
mov eax, dword [esi + 0x20]
push 0xff6beb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d10], eax
mov eax, dword [esi + 0x20]
push 0xff73ce
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d18], eax
mov eax, dword [esi + 0x20]
push 0x6badff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d1c], eax
mov eax, dword [esi + 0x20]
push 0x1acc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d20], eax
mov eax, dword [esi + 0x20]
push 0xe7e7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d24], eax
mov eax, dword [esi + 0x20]
push 0x8000
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d28], eax
mov eax, dword [esi + 0x20]
push ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d34], eax
mov eax, dword [esi + 0x20]
push 0xffffff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d2c], eax
mov eax, dword [esi + 0x20]
push 0xf0fbff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d30], eax
mov eax, dword [esi + 0x20]
push 0x1baff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d38], eax
mov eax, dword [esi + 0x20]
push 0xcfcfcf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d3c], eax
mov eax, dword [esi + 0x20]
push 0xb9b9b9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d40], eax
mov eax, dword [esi + 0x20]
push 0xa3a3a3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d44], eax
mov eax, dword [esi + 0x20]
push 0x8c8c8c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d48], eax
mov eax, dword [esi + 0x20]
push 0x767676
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d4c], eax
mov eax, dword [esi + 0x20]
push fcn.00606060
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d50], eax
mov eax, dword [esi + 0x20]
push 0x7b94ac
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d54], eax
mov eax, dword [esi + 0x20]
push 0x6b8299
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d58], eax
mov eax, dword [esi + 0x20]
push 0x607b95
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d5c], eax
mov eax, dword [esi + 0x20]
push 0x55708e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d60], eax
mov eax, dword [esi + 0x20]
push 0x485c73
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d64], eax
mov eax, dword [esi + 0x20]
push 0x444c5c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call edi
mov dword [esi + 0x1d68], eax
mov eax, dword [esi + 0x1d20]
mov dword [esi + 0x1d6c], eax
mov ecx, dword [esi + 0x1d40]
mov dword [esi + 0x1d70], ecx
mov edx, dword [esi + 0x1d24]
mov dword [esi + 0x1d78], edx
mov eax, dword [esi + 0x1d28]
mov dword [esi + 0x1d74], eax
mov ecx, dword [esi + 0x1d2c]
mov dword [esi + 0x1d7c], ecx
mov edx, dword [esi + 0x1cf8]
mov dword [esi + 0x1d80], edx
mov eax, dword [esi + 0x1cfc]
mov dword [esi + 0x1d84], eax
mov ecx, dword [esi + 0x1d08]
mov dword [esi + 0x1d88], ecx
mov edx, dword [esi + 0x1d00]
mov dword [esi + 0x1d8c], edx
mov eax, dword [esi + 0x1d10]
mov dword [esi + 0x1d90], eax
mov ecx, dword [esi + 0x1d0c]
mov dword [esi + 0x1d94], ecx
mov edx, dword [esi + 0x1d34]
mov dword [esi + 0x1d98], edx
mov eax, dword [esi + 0x1d2c]
mov ecx, esi
mov dword [esi + 0x1d9c], eax
call fcn.005d76c0
mov edi, eax
mov ecx, esi
sub edi, 0x69
call fcn.005d74c0
push ebx
push ebx
sub eax, 0x16
push 9
push 0x14
push 0x64
push eax
push edi
push ebx
lea edi, [esi + 0x1c74]
push 0x4e85
push edi
push esi
mov ecx, esi
call fcn.004aa430
test eax, eax
jne 0x454ff2
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, dword [edi]
push 0xffffffffffffffff
push 0x4e85
call fcn.004a88c0
mov ecx, dword [edi]
push 1
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
mov edi, dword [edi]
mov ecx, esi
mov dword [edi + 0x2a8], 0x1b
mov dword [edi + 0x2ac], ebx
mov dword [edi + 0x2b0], ebx
mov dword [edi + 0x2b4], ebx
call fcn.005d76c0
mov edi, eax
mov ecx, esi
sub edi, 0x118
call fcn.005d74c0
push ebx
push ebx
push 9
sub eax, 0x16
push 0x14
push 0x32
push eax
push edi
push ebx
lea edi, [esi + 0x1c78]
push 0x66f928
push edi
push esi
mov ecx, esi
call fcn.004aa4d0
test eax, eax
jne 0x45507c
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, dword [edi]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
mov ecx, esi
call fcn.005d76c0
mov edi, eax
mov ecx, esi
sub edi, 0xdc
call fcn.005d74c0
push ebx
push ebx
push 9
sub eax, 0x16
push 0x14
push 0x32
push eax
push edi
push ebx
lea edi, [esi + 0x1c7c]
push 0x66f924
push edi
push esi
mov ecx, esi
call fcn.004aa4d0
test eax, eax
jne 0x4550da
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, dword [edi]
push 1
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
push 0x208
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 1
je 0x45511e
mov edi, 1
mov ecx, eax
push edi
push str.Close_Button_Main
call fcn.004655a0
jmp 0x455125
xor eax, eax
mov edi, 1
cmp eax, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x830], eax
jne 0x455141
mov dword [esi + 0xdc], edi
jmp 0x456714
mov ecx, dword [0x6833d0]
push ebx
push ebx
push 0x14
mov ecx, dword [ecx + 0x6c]
push 0x64
push ecx
mov ecx, eax
call fcn.00465820
test eax, eax
jne 0x455167
mov dword [esi + 0xdc], edi
jmp 0x456714
mov ecx, dword [esi + 0x830]
push 0x14
push 0x64
push ebx
push ebx
call fcn.004663f0
push 0x208
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 2
je 0x4551a4
push edi
push str.Scroll_Left_Button_Main
mov ecx, eax
call fcn.004655a0
jmp 0x4551a6
xor eax, eax
cmp eax, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x834], eax
jne 0x4551c2
mov dword [esi + 0xdc], edi
jmp 0x456714
mov edx, dword [0x6833d0]
push ebx
push ebx
push 0x14
mov ecx, dword [edx + 0x6c]
push 0x32
push ecx
mov ecx, eax
call fcn.00465820
test eax, eax
jne 0x4551e8
mov dword [esi + 0xdc], edi
jmp 0x456714
mov ecx, dword [esi + 0x834]
push 0x14
push 0x32
push ebx
push ebx
call fcn.004663f0
push 0x208
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 3
je 0x455225
push edi
push str.Scroll_Right_Button_Main
mov ecx, eax
call fcn.004655a0
jmp 0x455227
xor eax, eax
cmp eax, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x838], eax
jne 0x455243
mov dword [esi + 0xdc], edi
jmp 0x456714
mov ecx, dword [0x6833d0]
push ebx
push ebx
push 0x14
mov ecx, dword [ecx + 0x6c]
push 0x32
push ecx
mov ecx, eax
call fcn.00465820
test eax, eax
jne 0x455269
mov dword [esi + 0xdc], edi
jmp 0x456714
mov ecx, dword [esi + 0x838]
push 0x14
push 0x32
push ebx
push ebx
call fcn.004663f0
push 0x78
push ebp
push 0x4e93
mov ecx, esi
call fcn.004a8860
lea edx, [esi + 0x1260]
push 0x78
push edx
push 0x4e94
mov ecx, esi
call fcn.004a8860
lea eax, [esi + 0x12d8]
push 0x78
push eax
push 0x4e95
mov ecx, esi
call fcn.004a8860
lea ecx, [esi + 0x1350]
push 0x78
push ecx
push 0x4e96
mov ecx, esi
call fcn.004a8860
lea eax, [esi + 0x1c88]
mov dword [esp + 0x1c], 0x72c
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
mov edi, eax
push 1
push ebx
push 1
push 0xb
push 0x19
push 0x96
push 2
push 2
push ebx
push edi
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
je 0x4566f6
mov ecx, dword [edi]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
mov ecx, dword [edi]
push ebx
push ebx
call fcn.004c2880
mov ecx, dword [edi]
push ebx
call fcn.004c2840
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push 1
push ebx
push 1
push 0xb
add eax, ecx
push 0x19
push 0x96
push 2
lea ebp, [esi + eax*4]
push 2
push ebx
push ebp
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
je 0x4566f6
mov ecx, dword [ebp]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [ebp]
push ebx
push 1
call fcn.004a8580
mov ecx, dword [ebp]
push ebx
push ebx
call fcn.004c2880
mov ecx, dword [ebp]
push ebx
call fcn.004c2840
mov eax, dword [esp + 0x20]
add edi, 4
inc eax
cmp eax, 2
mov dword [esp + 0x20], eax
jl 0x4552e0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 2
add eax, 8
cmp ecx, 0x736
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jl 0x4552da
mov ecx, dword [esi + 0x1c88]
push 0x4e8e
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1c90]
push 0x4e8f
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1c98]
push 0x4e90
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1ca0]
push 0x4e91
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1c8c]
push 0x4e92
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1c94]
push 0x4e92
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1c9c]
push 0x4e92
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1ca4]
push 0x4e92
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1cb0]
push 0x4e8e
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1cb8]
push 0x4e8f
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1cc0]
push 0x4e90
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1cc8]
push 0x4e91
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1cb4]
push 0x4e92
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1cbc]
push 0x4e92
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1cc4]
push 0x4e92
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1ccc]
push 0x4e92
mov edx, dword [ecx]
call dword [edx + 0xfc]
xor ebp, ebp
lea edi, [esi + 0x1ce0]
push ebx
push ebx
push ebx
push 0xd
push 0x19
push 0xa0
push 2
push 2
push ebx
push edi
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
je 0x4566f6
mov ecx, dword [edi]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
mov ecx, dword [edi]
push ebx
call fcn.004c2840
mov ecx, dword [edi]
push ebx
push ebx
call fcn.004c2880
inc ebp
add edi, 4
cmp ebp, 4
jl 0x4554ee
mov ecx, dword [esi + 0x1ce0]
push 0x4e99
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1ce4]
push 0x4e9a
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov ecx, dword [esi + 0x1ce8]
push 0x4e98
mov edx, dword [ecx]
call dword [edx + 0xfc]
mov ecx, dword [esi + 0x1cec]
push 0x4e97
mov eax, dword [ecx]
call dword [eax + 0xfc]
xor ebp, ebp
lea edi, [esi + 0x1cf0]
push ebx
push ebx
push ebx
push 0xd
push 0x19
push 0xa0
push 2
push 2
push ebx
push edi
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
je 0x4566f6
mov ecx, dword [edi]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push ebx
push 1
call fcn.004a8580
mov ecx, dword [edi]
push ebx
call fcn.004c2840
mov ecx, dword [edi]
push ebx
push ebx
call fcn.004c2880
inc ebp
add edi, 4
cmp ebp, 2
jl 0x455590
mov ecx, dword [esi + 0x1cf0]
push ebx
push ebx
push 0x4e9c
mov eax, dword [ecx]
call dword [eax + 0x108]
mov ecx, dword [esi + 0x1cf4]
push ebx
push ebx
push 0x4ea0
mov edx, dword [ecx]
call dword [edx + 0x108]
mov ebp, 1
lea edi, [esi + 0x1c80]
push ebp
push ebx
push ebx
push 0xa
push 0x14
push 0x64
push 0x14
push 2
push ebx
push edi
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
jne 0x455639
mov dword [esi + 0xdc], ebp
jmp 0x456714
mov ecx, dword [edi]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [edi]
push ebx
push ebx
call fcn.004c2880
mov ecx, dword [edi]
push ebx
push ebp
call fcn.004a8580
mov ecx, dword [edi]
push ebx
call fcn.004c2840
push ebp
push ebx
push ebx
push 0xa
push 0x19
push 0xc8
push 0x14
push 2
lea edi, [esi + 0x1cd8]
push ebx
push edi
push esi
mov ecx, esi
call fcn.004aac60
test eax, eax
jne 0x45568a
mov dword [esi + 0xdc], ebp
jmp 0x456714
mov ecx, dword [edi]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push ebx
push ebx
call fcn.004c2880
mov ecx, dword [edi]
push ebx
push ebp
call fcn.004a8580
mov ecx, dword [edi]
push ebx
call fcn.004c2840
mov edi, dword [edi]
push 0x4e9d
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0xfc]
push 0xa
push 0x19
push 0xc8
push 0x14
push 2
push ebx
lea edi, [esi + 0x1cdc]
push 0xe6
push edi
push esi
mov ecx, esi
call fcn.004ab5c0
test eax, eax
jne 0x4556ee
mov dword [esi + 0xdc], ebp
jmp 0x456714
mov ecx, dword [edi]
push 1
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [edi]
push 1
call fcn.004b9520
mov ecx, dword [edi]
push 1
push 1
call fcn.004a8580
mov eax, dword [edi]
push ebx
push ebx
mov ecx, dword [eax + 0x100]
call fcn.004c2880
mov ecx, dword [edi]
push ebx
mov ecx, dword [ecx + 0x100]
call fcn.004c2840
mov edx, dword [edi]
push ebx
push ebx
mov ecx, dword [edx + 0xf8]
call fcn.004c2880
mov eax, dword [edi]
push ebx
mov ecx, dword [eax + 0xf8]
call fcn.004c2840
mov ecx, dword [edi]
push 0x83
push 1
mov ecx, dword [ecx + 0x100]
call fcn.004c28c0
mov edx, dword [edi]
push 0x83
push 1
mov ecx, dword [edx + 0xf8]
call fcn.004c28c0
mov eax, dword [edi]
mov ebp, 1
mov eax, dword [eax + 0x104]
mov byte [eax + 0xf4], 0xff
mov ecx, dword [0x6833d0]
mov eax, dword [ecx + 0x424]
cmp word [eax + 0x50], bp
jle 0x4558b3
mov edx, dword [esi + 0x818]
mov byte [esp + 0x130], bl
cmp edx, ebx
mov byte [esp + 0x30], bl
mov byte [esp + 0xb0], bl
je 0x455848
xor eax, eax
mov al, byte [edx + 0x15d]
cmp eax, ebp
jne 0x4557d9
mov edx, dword [ecx]
lea eax, [esp + 0x30]
push 0x80
push eax
push 0x4e9e
call dword [edx + 0x28]
jmp 0x455842
mov eax, dword [ecx + 0x424]
mov edi, 1
cmp word [eax + 0x48], di
jle 0x455848
add edx, 0x193b
mov dword [esp + 0x1c], edx
cmp edi, 9
jge 0x455848
mov edx, dword [esp + 0x1c]
cmp byte [edx], 4
jne 0x455814
mov eax, dword [eax + 0x4c]
mov edx, dword [eax + edi*4]
xor eax, eax
mov al, byte [edx + 0x15d]
cmp eax, ebp
je 0x45582e
mov eax, dword [esp + 0x1c]
inc edi
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x424]
movsx edx, word [eax + 0x48]
cmp edi, edx
jl 0x4557f4
jmp 0x455848
mov eax, dword [ecx]
lea edx, [esp + 0x30]
push 0x80
push edx
push 0x4e9f
call dword [eax + 0x28]
mov ecx, dword [0x6833d0]
mov eax, dword [ecx]
lea edx, [esp + 0x130]
push 0x80
push edx
push ebx
push ebp
push 0x69
call dword [eax + 0x2c]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x130]
push eax
push ecx
lea edx, [esp + 0xb8]
push 0x66a7b8
push edx
call fcn.00613634
mov ecx, dword [esi + 0x1cdc]
add esp, 0x10
lea edi, [esi + 0x1cdc]
lea eax, [esp + 0xb0]
push ebp
push eax
call fcn.004b9640
mov ecx, dword [0x6833d0]
inc ebp
mov eax, dword [ecx + 0x424]
movsx edx, word [eax + 0x50]
cmp ebp, edx
jl 0x455797
mov ecx, dword [edi]
push ebx
call fcn.004b9540
push 0xa
push 0xa
push ebx
push ebx
mov dword [esi + 0xe30], 0x154
push ebx
mov dword [esi + 0xe34], 0x32
mov eax, dword [esi + 0xe30]
mov ecx, dword [esi + 0x1c84]
push ebx
push 0xc
push 0x32
push eax
push ebx
lea ebp, [esi + 0x1c84]
push ebx
push ebp
push esi
call fcn.00460340
mov ecx, dword [ebp]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov dword [esi + 0xe44], ebx
mov ecx, dword [ebp]
push ebx
push 1
call fcn.004a8580
mov ecx, dword [ebp]
mov dl, byte [esi + 0x1d2c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp]
push 0xe7e7
push ebx
call fcn.00460a70
mov eax, dword [ebp]
mov byte [eax + 0xf4], 1
mov edx, dword [esi + 0x1d50]
push edx
mov edx, dword [esi + 0x1d4c]
push edx
mov edx, dword [esi + 0x1d48]
mov ecx, dword [ebp]
push edx
mov edx, dword [esi + 0x1d44]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x1d40]
push edx
mov edx, dword [esi + 0x1d3c]
push edx
push ebx
call dword [eax + 0xf8]
mov ecx, dword [ebp]
push 7
call fcn.00460aa0
mov ecx, dword [ebp]
push 1
call fcn.00461050
mov eax, dword [esi + 0x1c4c]
mov ecx, dword [0x6833d0]
push eax
call fcn.004207d0
cmp eax, ebx
jne 0x4559af
mov dword [esi + 0x1c4c], 0xa
mov ecx, dword [0x6833d0]
push 0xa
call fcn.004207d0
mov ecx, dword [eax + 4]
push 0x62
mov dword [esi + 0x1c44], ecx
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esi + 0x1c48], edx
call fcn.004a8890
test eax, eax
je 0x4559e3
push 0x62
mov ecx, esi
call fcn.004a8890
cmp byte [eax], 0x31
jne 0x4559e3
add dword [esi + 0x1c48], 0xfffffffe
mov eax, dword [esi + 0x1c74]
mov ecx, esi
push eax
call fcn.004a8500
mov eax, dword [esi + 0x818]
cmp eax, ebx
je 0x455a19
mov ecx, dword [eax + 0x174]
mov dword [esi + 0xe14], ecx
mov edx, dword [esi + 0x818]
mov eax, dword [edx + 0x178]
mov dword [esi + 0xe18], eax
mov ecx, dword [0x6833d0]
mov ebp, dword [ecx + 0x17b4]
cmp ebp, ebx
jne 0x455b90
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 4
je 0x455a5c
push 0xc629
push str.btntech.shp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455a5e
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c50], ebp
je 0x455a99
cmp byte [ebp + 0x14], bl
jne 0x455a99
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c50], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 5
je 0x455ac8
push 0xc62a
push str.ico_unit.shp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455aca
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c54], ebp
je 0x455b05
cmp byte [ebp + 0x14], bl
jne 0x455b05
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c54], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
push 2
lea edx, [esp + 0x1b4]
push str.ico_bld_d.shp
push edx
call fcn.00613634
push 0x1c
call fcn.0061317d
add esp, 0x10
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 6
je 0x455b4b
lea ecx, [esp + 0x1b0]
push 0xc612
push ecx
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455b4d
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c58], ebp
je 0x455bf0
cmp byte [ebp + 0x14], bl
jne 0x455bf0
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c58], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, ebp
call fcn.004f1d80
cmp eax, ebx
mov dword [esi + 0x1c50], eax
jne 0x455bb0
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, ebp
call fcn.004f1d90
cmp eax, ebx
mov dword [esi + 0x1c54], eax
jne 0x455bd0
mov dword [esi + 0xdc], 1
jmp 0x456714
mov ecx, ebp
call fcn.004f1d60
cmp eax, ebx
mov dword [esi + 0x1c58], eax
jne 0x455bf0
mov dword [esi + 0xdc], 1
jmp 0x456714
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 7
je 0x455c1f
push 0xcf0c
push str.arrows.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455c21
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c6c], ebp
je 0x455c4d
cmp byte [ebp + 0x14], bl
jne 0x455c4d
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
add esp, 4
mov dword [esi + 0x1c6c], ebx
mov eax, dword [esi + 0x1c6c]
cmp eax, ebx
je 0x455cbc
cmp byte [eax + 0x14], 1
jne 0x455cbc
mov ecx, dword [esi + 0x1c78]
push 1
push eax
push ebx
call fcn.004b6180
mov ecx, dword [esi + 0x1c78]
push 9
call fcn.005c3d00
mov ecx, dword [esi + 0x1c78]
push 0x6819d0
push ebx
call fcn.004b61c0
mov edx, dword [esi + 0x1c6c]
mov ecx, dword [esi + 0x1c7c]
push ebx
push edx
push ebx
call fcn.004b6180
mov ecx, dword [esi + 0x1c7c]
push 9
call fcn.005c3d00
mov ecx, dword [esi + 0x1c7c]
push 0x6819d0
push ebx
call fcn.004b61c0
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 8
je 0x455ceb
push 0xcfd6
push str.technodex.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455ced
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c5c], ebp
je 0x455d19
cmp byte [ebp + 0x14], bl
jne 0x455d19
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
add esp, 4
mov dword [esi + 0x1c5c], ebx
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 9
je 0x455d48
push 0xc4a5
push str.techback.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455d4a
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c60], ebp
je 0x455d85
cmp byte [ebp + 0x14], bl
jne 0x455d85
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c60], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 0xa
je 0x455db4
push 0xc4a6
push str.techages.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455db6
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c64], ebp
je 0x455df1
cmp byte [ebp + 0x14], bl
jne 0x455df1
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c64], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 0xb
je 0x455e20
push 0xcfdb
push str.ttx.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455e22
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c70], ebp
je 0x455e5d
cmp byte [ebp + 0x14], bl
jne 0x455e5d
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
mov dword [esi + 0x1c70], ebx
add esp, 4
mov dword [esi + 0xdc], 1
jmp 0x456714
push 0x1c
call fcn.0061317d
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x238], 0xc
je 0x455e8c
push 0xc4a7
push str.tech_tile.slp
mov ecx, eax
call fcn.0052c250
mov ebp, eax
jmp 0x455e8e
xor ebp, ebp
cmp ebp, ebx
mov byte [esp + 0x238], bl
mov dword [esi + 0x1c68], ebp
je 0x455eba
cmp byte [ebp + 0x14], bl
jne 0x455eba
mov ecx, ebp
call fcn.0052c560
push ebp
call fcn.00613172
add esp, 4
mov dword [esi + 0x1c68], ebx
mov eax, dword [esi + 0x1c68]
cmp eax, ebx
je 0x455f07
cmp byte [eax + 0x14], 1
jne 0x455f07
mov eax, dword [edi]
push 0xc4a7
push str.tech_tile.slp
mov ecx, dword [eax + 0x100]
call fcn.004c28e0
mov ecx, dword [edi]
push 0xc4a7
push str.tech_tile.slp
mov ecx, dword [ecx + 0xf8]
call fcn.004c28e0
mov edx, dword [edi]
mov eax, dword [edx + 0x104]
mov byte [eax + 0xf4], 0xff
mov ecx, dword [esp + 0x240]
mov ebp, 0x96
mov eax, 0xe6
mov edi, 0x19
mov dword [esi + 0xe70], ebp
mov dword [esi + 0xeb8], eax
mov dword [esi + 0xebc], edi
mov dword [esi + 0xec8], eax
mov dword [esi + 0xecc], edi
call fcn.005d74c0
cmp eax, 0x258
jg 0x4560ce
mov eax, 2
lea ecx, [esp + 0x14]
mov dword [esi + 0xe6c], eax
mov dword [esi + 0xe74], eax
mov eax, dword [esi + 0xe6c]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x1c60]
push edx
push eax
call fcn.0052c6e0
cmp al, 1
jne 0x455f86
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xe70], ecx
mov ecx, dword [esi + 0xe74]
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x1c64]
call fcn.0052c6e0
cmp al, 1
mov edi, 0x12c
jne 0x455fb7
mov edx, dword [esp + 0x10]
mov dword [esi + 0xe78], edx
jmp 0x455fbd
mov dword [esi + 0xe78], edi
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
mov eax, dword [esi + 0xe74]
push ecx
mov ecx, dword [esi + 0x1c64]
lea edx, [eax + eax*4 + 3]
push edx
call fcn.0052c6e0
cmp al, 1
jne 0x455fed
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe7c], eax
jmp 0x455ff7
mov dword [esi + 0xe7c], 0x85
mov eax, dword [esi + 0xe7c]
mov edx, dword [esi + 0xe78]
mov ecx, eax
mov dword [esi + 0xf10], eax
add ecx, edx
mov eax, 0x50
mov dword [esi + 0xf0c], ecx
mov ecx, 0x37
mov dword [esi + 0xe80], 0xa7
mov dword [esi + 0xe84], 0x1d6
mov dword [esi + 0xe88], 0x16
mov dword [esi + 0xe8c], 0x23
mov dword [esi + 0xe90], 0x1ae
mov dword [esi + 0xe94], eax
mov dword [esi + 0xe98], 0x28
mov dword [esi + 0xe9c], eax
mov dword [esi + 0xea4], 0xffffffe2
mov dword [esi + 0xea0], 3
mov dword [esi + 0xea8], 0x10e
mov dword [esi + 0xeac], edi
mov dword [esi + 0xeb0], 0x1e
mov dword [esi + 0xeb4], 0x73
mov dword [esi + 0xec0], ecx
mov dword [esi + 0xec4], 0x3c
mov dword [esi + 0xed0], ecx
mov dword [esi + 0xed4], eax
mov dword [esi + 0xed8], 0x154
mov dword [esi + 0xedc], ebp
jmp 0x4565a6
mov ecx, dword [esp + 0x240]
call fcn.005d74c0
cmp eax, 0x300
jg 0x4561a6
mov dword [esi + 0xe6c], ebx
lea edx, [esp + 0x14]
mov dword [esi + 0xe74], ebx
mov ecx, dword [esi + 0xe6c]
lea eax, [esp + 0x10]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x1c60]
call fcn.0052c6e0
cmp al, 1
jne 0x45611b
mov edx, dword [esp + 0x10]
mov dword [esi + 0xe70], edx
mov edx, dword [esi + 0xe74]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
mov ecx, dword [esi + 0x1c64]
push edx
call fcn.0052c6e0
cmp al, 1
jne 0x456147
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe78], eax
jmp 0x456151
mov dword [esi + 0xe78], 0x1c2
mov eax, dword [esi + 0xe74]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x1c64]
lea eax, [eax + eax*4 + 3]
push edx
push eax
call fcn.0052c6e0
cmp al, 1
jne 0x456181
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xe7c], ecx
jmp 0x45618b
mov dword [esi + 0xe7c], 0x93
mov eax, dword [esi + 0xe7c]
mov ecx, dword [esi + 0xe78]
mov edx, eax
add edx, ecx
mov dword [esi + 0xf0c], edx
jmp 0x4564e2
mov ecx, dword [esp + 0x240]
call fcn.005d74c0
cmp eax, 0x400
jg 0x456349
mov eax, 1
lea ecx, [esp + 0x10]
mov dword [esi + 0xe6c], eax
mov dword [esi + 0xe74], eax
mov edx, dword [esi + 0xe6c]
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, dword [esi + 0x1c60]
push edx
call fcn.0052c6e0
cmp al, 1
jne 0x4561f8
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe70], eax
mov eax, dword [esi + 0xe74]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x1c64]
push edx
push eax
call fcn.0052c6e0
cmp al, 1
jne 0x456224
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xe78], ecx
jmp 0x45622e
mov dword [esi + 0xe78], 0x12c
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
mov eax, dword [esi + 0xe74]
lea ecx, [eax + eax*4 + 3]
push ecx
mov ecx, dword [esi + 0x1c64]
call fcn.0052c6e0
cmp al, 1
jne 0x45625e
mov edx, dword [esp + 0x10]
mov dword [esi + 0xe7c], edx
jmp 0x456268
mov dword [esi + 0xe7c], 0x88
mov eax, dword [esi + 0xe7c]
mov edx, dword [esi + 0xe78]
mov ecx, eax
add ecx, edx
mov dword [esi + 0xf0c], ecx
mov dword [esi + 0xf10], eax
mov eax, 0x28
mov dword [esi + 0xe98], eax
mov dword [esi + 0xeb0], eax
mov eax, 0x46
mov dword [esi + 0xe80], 0xc8
mov dword [esi + 0xe84], 0x357
mov dword [esi + 0xe88], 0x17
mov dword [esi + 0xe8c], 0x32
mov dword [esi + 0xe90], 0x32e
mov dword [esi + 0xe9c], 0x64
mov dword [esi + 0xe94], 0x50
mov dword [esi + 0xea4], 0xffffffd3
mov dword [esi + 0xea0], 0xf
mov dword [esi + 0xea8], 0x122
mov dword [esi + 0xeac], 0x294
mov dword [esi + 0xeb4], 0x7d
mov dword [esi + 0xec0], eax
mov dword [esi + 0xec4], eax
mov dword [esi + 0xed0], eax
mov dword [esi + 0xed4], 0x5a
mov dword [esi + 0xed8], 0x1c2
mov dword [esi + 0xedc], ebp
mov dword [esi + 0xee0], edi
jmp 0x4565b0
mov ecx, dword [esp + 0x240]
call fcn.005d74c0
cmp eax, 0x4b0
jg 0x456426
mov eax, 1
lea edx, [esp + 0x14]
mov dword [esi + 0xe6c], eax
mov dword [esi + 0xe74], eax
mov ecx, dword [esi + 0xe6c]
lea eax, [esp + 0x10]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x1c60]
call fcn.0052c6e0
cmp al, 1
jne 0x45639b
mov edx, dword [esp + 0x10]
mov dword [esi + 0xe70], edx
mov edx, dword [esi + 0xe74]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
mov ecx, dword [esi + 0x1c64]
push edx
call fcn.0052c6e0
cmp al, 1
jne 0x4563c7
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe78], eax
jmp 0x4563d1
mov dword [esi + 0xe78], 0x12c
mov eax, dword [esi + 0xe74]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x1c64]
lea eax, [eax + eax*4 + 3]
push edx
push eax
call fcn.0052c6e0
cmp al, 1
jne 0x456401
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xe7c], ecx
jmp 0x45640b
mov dword [esi + 0xe7c], 0x88
mov eax, dword [esi + 0xe7c]
mov ecx, dword [esi + 0xe78]
mov edx, eax
add edx, ecx
mov dword [esi + 0xf0c], edx
jmp 0x45627e
mov dword [esi + 0xe6c], ebx
lea eax, [esp + 0x14]
mov dword [esi + 0xe74], ebx
mov edx, dword [esi + 0xe6c]
lea ecx, [esp + 0x10]
push eax
push ecx
mov ecx, dword [esi + 0x1c60]
push edx
call fcn.0052c6e0
cmp al, 1
jne 0x45645c
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe70], eax
mov eax, dword [esi + 0xe74]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x1c64]
push edx
push eax
call fcn.0052c6e0
cmp al, 1
jne 0x456488
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xe78], ecx
jmp 0x456492
mov dword [esi + 0xe78], 0x1c2
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
mov eax, dword [esi + 0xe74]
lea ecx, [eax + eax*4 + 3]
push ecx
mov ecx, dword [esi + 0x1c64]
call fcn.0052c6e0
cmp al, 1
jne 0x4564c2
mov edx, dword [esp + 0x10]
mov dword [esi + 0xe7c], edx
jmp 0x4564cc
mov dword [esi + 0xe7c], 0x93
mov eax, dword [esi + 0xe7c]
mov edx, dword [esi + 0xe78]
mov ecx, eax
add ecx, edx
mov dword [esi + 0xf0c], ecx
mov dword [esi + 0xf10], eax
mov eax, 0x28
mov dword [esi + 0xe98], eax
mov dword [esi + 0xeb0], eax
mov eax, 0x41
mov dword [esi + 0xe80], 0xbc
mov dword [esi + 0xe84], 0x251
mov dword [esi + 0xe88], 0x16
mov dword [esi + 0xe8c], 0x2d
mov dword [esi + 0xe90], 0x226
mov dword [esi + 0xe9c], 0x5a
mov dword [esi + 0xe94], 0x50
mov dword [esi + 0xea4], 0xffffffd8
mov dword [esi + 0xea0], 0xf
mov dword [esi + 0xea8], 0x118
mov dword [esi + 0xeac], 0x1ae
mov dword [esi + 0xeb4], 0x78
mov dword [esi + 0xec0], eax
mov dword [esi + 0xec4], eax
mov dword [esi + 0xed0], eax
mov dword [esi + 0xed4], 0x55
mov dword [esi + 0xed8], 0x159
mov dword [esi + 0xedc], 0x98
mov dword [esi + 0xee0], 0x21
mov eax, 0x40
mov dword [esi + 0xe4c], eax
mov dword [esi + 0xe50], eax
mov dword [esi + 0xe54], eax
mov dword [esi + 0xe58], eax
mov eax, 0x24
mov dword [esi + 0xe5c], eax
mov dword [esi + 0xe60], eax
mov dword [esi + 0xe64], 0xe
mov dword [esi + 0xe68], 3
mov edx, dword [esi + 0x1c5c]
mov ecx, dword [esi + 0x1c50]
push eax
push eax
mov eax, dword [esi + 0x1c54]
push edx
mov edx, dword [esi + 0x1c58]
push eax
push ecx
mov ecx, dword [esi + 0x1c84]
push edx
call fcn.004609b0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esi + 0xdbc], eax
mov dword [esi + 0xdc0], ecx
mov ecx, esi
call fcn.005d7770
mov ecx, esi
mov dword [esi + 0xdc4], eax
call fcn.00548ca0
mov edi, dword [esp + 0x240]
mov dword [esi + 0xdc8], eax
mov ecx, edi
call fcn.005d74c0
cmp eax, 0x258
jle 0x4566ac
mov ecx, edi
call fcn.005d74c0
cmp eax, 0x300
jg 0x456678
mov dword [esi + 0xddc], 0x3fa3d70a
jmp 0x4566b6
mov ecx, edi
call fcn.005d74c0
cmp eax, 0x400
jg 0x456692
mov dword [esi + 0xddc], 0x3fda740e
jmp 0x4566b6
mov ecx, edi
call fcn.005d74c0
cmp eax, 0x640
jg 0x4566ac
mov dword [esi + 0xddc], 0x40000000
jmp 0x4566b6
mov dword [esi + 0xddc], 0x3f800000
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x8c]
push edx
mov ecx, dword [eax + 0x38]
push ecx
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, 0x42000000
mov ecx, esi
mov dword [esi + 0xdf8], eax
mov dword [esi + 0xdfc], eax
mov dword [esi + 0xe00], 0x41d80000
call fcn.004573c0
cmp eax, ebx
mov dword [esi + 0xf14], eax
jne 0x456702
mov dword [esi + 0xdc], 1
jmp 0x456714
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esi + 0xe40], eax
mov dword [esi + 0xde0], ebx
mov ecx, dword [esp + 0x230]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x22c
ret 0xc