Function at 0x497b90
Capabilities:
Encrypt data using speck

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
mov esi, dword [esp + 0x58]
test esi, esi
push edi
jne 0x497bb1
push str.Invalid_unit__NULL
push str.Unit.cpp
call fcn.0042b590
add esp, 8
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x497bca
push str.Invalid_unit_state__esDummyState
push str.Unit.cpp
call fcn.0042b590
add esp, 8
xor eax, eax
mov ebx, dword [esp + 0x60]
mov al, byte [esi + 0x18]
shl eax, 8
mov cl, byte [eax + 0x77e261]
test cl, cl
mov byte [esp + 0x13], cl
je 0x497c27
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
mov edi, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, edi
lea edx, [eax + eax*2]
test byte [edx*4 + 0x517df4], 8
je 0x497c27
mov eax, dword [esp + 0x64]
mov ebp, dword [esi + 8]
push eax
or ebp, 0x1000000
push ebx
push esi
mov dword [esi + 8], ebp
call fcn.0049fa50
mov cl, byte [esp + 0x1f]
add esp, 0xc
jmp 0x497c2e
and dword [esi + 8], 0xfeffffff
test cl, cl
je 0x497c3b
push esi
call fcn.004940d0
add esp, 4
test dword [esi + 8], 0x800000
je 0x497c67
mov eax, dword [esi + 4]
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
lea edx, [eax + eax]
cmp edx, dword [ecx + 0x77e254]
jge 0x497c67
test byte [0x5173f4], 3
jne 0x497c67
inc eax
mov dword [esi + 4], eax
push ebx
call fcn.004a4660
mov dword [esp + 0x24], eax
xor eax, eax
mov al, byte [esi + 0x18]
add esp, 4
shl eax, 8
cmp byte [eax + 0x77e27d], 4
jne 0x497cca
test byte [0x5173f4], 0xf
jne 0x497cca
mov ecx, dword [esi + 8]
mov al, byte [esi + 0x29]
test cl, 0x10
je 0x497cc1
test al, al
je 0x497cab
cmp al, 4
jbe 0x497ca5
sub al, 4
jmp 0x497cc7
mov byte [esi + 0x29], 0
jmp 0x497cca
test cl, 4
je 0x497cca
and ecx, 0xffffffef
push esi
mov dword [esi + 8], ecx
call fcn.0049f5c0
add esp, 4
jmp 0x497cca
cmp al, 0xa0
jae 0x497cca
inc al
mov byte [esi + 0x29], al
mov al, byte [esi + 0x1c]
test al, al
je 0x497cd6
dec al
mov byte [esi + 0x1c], al
push ebx
push esi
call fcn.0049f610
mov ebp, 0xffff
add esp, 8
cmp word [esi + 0x32], bp
mov edi, 0x11
je 0x497d93
mov cl, byte [esi + 0x30]
push ecx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cx, word [esi + 0x32]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
mov eax, dword [eax + ecx*4 + 0xc0]
dec eax
je 0x497d6f
dec eax
je 0x497d4d
mov dl, byte [esi + 0x30]
push edx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cx, word [esi + 0x32]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
mov edx, dword [eax + ecx*4 + 0xc0]
push edx
push str.Attacked_by_strange_type___d_
push str.Unit.cpp
call fcn.0042b590
add esp, 0xc
jmp 0x497d93
mov al, byte [esi + 0x30]
push eax
call fcn.004a4660
mov ecx, eax
xor eax, eax
mov ax, word [esi + 0x32]
add esp, 4
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
cmp dword [ecx + eax*4 + 0x60], edi
jne 0x497d93
jmp 0x497d8f
mov cl, byte [esi + 0x30]
push ecx
call fcn.004a4660
mov edx, eax
xor eax, eax
mov ax, word [esi + 0x32]
add esp, 4
lea ecx, [eax + eax*8]
lea eax, [eax + ecx*4]
cmp dword [edx + eax*4 + 0x40], edi
jne 0x497d93
mov word [esi + 0x32], bp
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 2
je 0x497e48
cmp word [esi + 0xc], bp
je 0x497e48
mov dl, byte [esi + 0x26]
push edx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cx, word [esi + 0xc]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
mov eax, dword [eax + ecx*4 + 0xc0]
dec eax
je 0x497df9
dec eax
jne 0x497e44
mov dl, byte [esi + 0x26]
push edx
call fcn.004a4660
mov ecx, eax
xor eax, eax
mov ax, word [esi + 0xc]
add esp, 4
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
cmp dword [ecx + eax*4 + 0x60], edi
jne 0x497e48
jmp 0x497e44
mov cl, byte [esi + 0x26]
push ecx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cx, word [esi + 0xc]
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
lea eax, [eax + ecx*4 + 0x30]
cmp dword [eax + 0x10], edi
je 0x497e44
mov eax, dword [eax + 8]
test eax, 0x400104
je 0x497e3b
mov edx, ebx
xor ecx, ecx
mov cl, byte [esi + 0x26]
and edx, 0xff
cmp byte [ecx + edx*8 + 0x798830], 0
jne 0x497e44
test ah, 1
je 0x497e48
test al, 0x40
jne 0x497e48
mov word [esi + 0xc], bp
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 8
cmp byte [edx + 0x77e27d], 8
jne 0x497e66
push ebx
call fcn.004a4660
add esp, 4
mov dword [esp + 0x20], eax
cmp word [esp + 0x64], 0x3e8
jb 0x497e81
push str.myIndex___kMaxUnitsPerSide
push str.UpdateUnit
call fcn.0042b590
add esp, 8
mov al, byte [esi + 0x27]
test al, al
je 0x497f50
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
mov cl, byte [eax + 0x77e261]
test cl, cl
jne 0x497f50
mov eax, dword [eax + 0x77e254]
mov ecx, dword [esi + 4]
shr eax, 1
cmp ecx, eax
jle 0x497eba
mov byte [esi + 0x27], 0
jmp 0x497f50
push 0xebb
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
mov edx, dword [0x5173f4]
and eax, 1
add eax, edx
add esp, 8
test al, 3
jne 0x497f44
mov ecx, dword [esi + 0x3c]
push 0
push 0
push 0
push 0
push ecx
push 0xebc
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
mov ecx, eax
mov eax, dword [esi + 0x38]
cdq
and edx, ebp
and ecx, 3
add eax, edx
add esp, 8
sar eax, 0x10
lea edx, [ecx + eax - 2]
push edx
push 0xebc
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
mov ecx, eax
mov eax, dword [esi + 0x34]
cdq
and edx, ebp
and ecx, 7
add eax, edx
add esp, 8
sar eax, 0x10
lea edx, [ecx + eax - 4]
mov al, byte [0x6d6113]
push edx
push eax
push ebx
call fcn.00456df0
add esp, 0x24
test byte [0x5173f4], 3
jne 0x497f50
dec byte [esi + 0x27]
mov edi, dword [esp + 0x64]
mov ecx, dword [0x5173f4]
and edi, ebp
and ecx, 7
mov ebp, edi
mov dword [esp + 0x60], edi
and ebp, 7
xor ecx, ebp
jne 0x497fcf
test byte [esi + 8], 0x40
jne 0x497fcf
mov eax, dword [esi + 0x34]
xor ecx, ecx
cdq
and edx, 0xffff
mov cl, byte [esi + 0x4a]
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cmp ecx, eax
jne 0x497fcb
mov eax, dword [esi + 0x38]
xor ecx, ecx
cdq
and edx, 0xffff
mov cl, byte [esi + 0x4b]
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cmp ecx, eax
jne 0x497fcb
xor eax, eax
mov al, byte [esi + 0x2c]
inc eax
cmp eax, 0xff
jl 0x497fc6
mov eax, 0xff
mov byte [esi + 0x2c], al
jmp 0x497fcf
mov byte [esi + 0x2c], 0
mov eax, dword [esi + 8]
test al, 1
je 0x498007
and al, 0xfe
push esi
mov byte [esi + 0x2a], 0
mov dword [esi + 8], eax
call fcn.0049fb40
add esp, 4
test al, al
je 0x49808f
mov al, byte [esi + 0x2e]
cmp al, 0x1e
jae 0x498000
mov byte [esi + 0x2e], 0
jmp 0x49808f
sub al, 0x1e
jmp 0x49808c
mov edx, dword [0x5173f4]
and edx, 7
xor edx, ebp
jne 0x49808f
test ah, 1
jne 0x49808f
xor ecx, ecx
mov cl, byte [esi + 0x2a]
inc ecx
cmp ecx, 0xff
jle 0x49802c
mov ecx, 0xff
cmp cl, 0x64
mov byte [esi + 0x2a], cl
jbe 0x498039
and al, 0xf7
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
test ah, 0x10
je 0x49808f
push esi
call fcn.0049fb40
add esp, 4
test al, al
je 0x49808f
mov al, byte [esi + 0x2e]
test al, al
jne 0x49808a
push esi
call fcn.0049d280
add esp, 4
test al, al
jne 0x49808f
mov eax, dword [esi + 8]
test eax, 0x400000
jne 0x49808f
and ah, 0xef
or al, 0x80
mov dword [esi + 8], eax
mov al, byte [esi + 0x2d]
cmp bl, al
je 0x49808f
push 0
push edi
push eax
push ebx
call fcn.0046d2e0
add esp, 0x10
jmp 0x49808f
dec al
mov byte [esi + 0x2e], al
mov eax, dword [esi + 8]
test al, 2
je 0x4980a1
and al, 0xfd
mov byte [esi + 0x2b], 0
mov dword [esi + 8], eax
jmp 0x4980c2
mov eax, dword [0x5173f4]
and eax, 7
xor eax, ebp
jne 0x4980c2
xor eax, eax
mov al, byte [esi + 0x2b]
inc eax
cmp eax, 0xff
jle 0x4980bf
mov eax, 0xff
mov byte [esi + 0x2b], al
mov eax, dword [esi + 0x10]
lea ecx, [eax - 2]
cmp ecx, 0x1f
ja case.0x4980d1.20
jmp dword [ecx*4 + 0x49b770]
test dword [esi + 8], 0x10000000
je 0x498114
mov cl, byte [esi + 0x4a]
mov al, byte [esi + 0x4c]
cmp cl, al
jne 0x4980f5
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4d]
cmp dl, al
je 0x498114
mov ecx, dword [esp + 0x60]
mov eax, ebx
and eax, 0xff
push eax
push ecx
push str.Unit__d_Side__d_is_waiting_with_To_and_From_blocks_different
push str.Unit.CPP
call fcn.0042b590
add esp, 0x10
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 8
mov al, byte [edx + 0x77e261]
test al, al
je 0x498131
push 0
push esi
call fcn.00494050
add esp, 8
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
cmp byte [eax + 0x77e27d], 0xa
jne 0x49814d
push 7
push esi
call fcn.0049deb0
add esp, 8
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
mov al, byte [ecx + 0x77e27d]
cmp al, 0xf
jne 0x4981a9
push 0xf34
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
add esp, 8
div dword [0x517de8]
push 0xf35
push str.C:MsDevProjectsJuly2000codeunit.cpp
mov byte [esi + 0x48], dl
call fcn.00448460
xor edx, edx
add esp, 8
div dword [0x517dec]
push 7
push esi
mov byte [esi + 0x49], dl
call fcn.0049deb0
add esp, 8
jmp 0x498367
cmp al, 2
je 0x4981b5
cmp al, 8
jne 0x498367
mov eax, dword [esi + 8]
test ah, 8
je 0x498250
test ah, 1
je 0x4981f7
test ah, 0x40
jne 0x4981f7
mov dl, byte [esi + 0x4c]
mov al, byte [esi + 0x48]
cmp dl, al
jne 0x4991a3
mov al, byte [esi + 0x4d]
mov cl, byte [esi + 0x49]
cmp al, cl
jne 0x4991a3
push 0x15
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
test ah, 2
jne 0x498367
mov al, byte [esi + 0x4c]
mov cl, byte [esi + 0x4d]
xor dx, dx
mov byte [esi + 0x48], al
mov dl, al
xor ax, ax
mov byte [esi + 0x49], cl
mov al, cl
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0x30]
push 0
lea edx, [esp + 0x30]
push ecx
push edx
mov dword [esp + 0x3c], eax
call fcn.0049e6b0
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x3c]
add esp, 0xc
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
push 7
push esi
call fcn.0049deb0
add esp, 8
jmp 0x498367
test ah, 1
je 0x4982b3
movsx ecx, byte [esi + 0x29]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea edi, [ecx + edx*4]
mov dl, byte [esi + 0x4c]
cmp dl, byte [edi + 0x2660e]
jne 0x49828b
mov cl, byte [esi + 0x4d]
mov dl, byte [edi + 0x2660f]
cmp cl, dl
jne 0x49828b
push 0x15
push esi
call fcn.0049deb0
add esp, 8
jmp 0x498367
and ah, 0xfd
push 7
mov dword [esi + 8], eax
mov dl, byte [edi + 0x2660e]
mov byte [esi + 0x48], dl
mov al, byte [edi + 0x2660f]
push esi
mov byte [esi + 0x49], al
call fcn.0049deb0
add esp, 8
jmp 0x498367
test ah, 2
je 0x4982c8
push 0x15
push esi
call fcn.0049deb0
add esp, 8
jmp 0x498367
mov edi, dword [esp + 0x20]
push esi
mov ecx, edi
call fcn.0046ce00
cmp al, 0xff
jne 0x49830d
mov ecx, dword [0x5173f4]
and ecx, 7
xor ecx, ebp
jne 0x4982fa
xor eax, eax
mov al, byte [esi + 0x55]
inc eax
cdq
xor eax, edx
sub eax, edx
and eax, 0x1f
xor eax, edx
sub eax, edx
mov byte [esi + 0x55], al
mov edx, dword [esp + 0x64]
push 1
push edx
push ebx
push esi
call fcn.00494fd0
add esp, 0x10
jmp 0x498367
movsx ecx, al
push 7
push esi
lea ecx, [ecx + ecx*4]
mov dl, byte [edi + ecx*4 + 0x2660c]
lea ecx, [edi + ecx*4]
mov byte [esi + 0x48], dl
mov dl, byte [ecx + 0x2660d]
mov byte [esi + 0x49], dl
mov dx, word [ecx + 0x26612]
mov word [esi + 0xc], dx
mov dl, byte [ecx + 0x2661c]
mov byte [esi + 0x26], dl
mov byte [esi + 0x29], al
mov ax, word [esp + 0x6c]
mov byte [ecx + 0x26611], 2
mov word [ecx + 0x26614], ax
call fcn.0049deb0
mov eax, dword [esi + 8]
add esp, 8
or ah, 2
mov dword [esi + 8], eax
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 1
jne 0x4983b1
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
test dword [edx*4 + 0x517df4], 0x700000
je case.0x4980d1.19
push 0xc
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov eax, dword [0x5173f4]
and eax, 7
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
cdq
xor eax, edx
mov ecx, dword [esp + 0x30]
sub eax, edx
and eax, 7
xor eax, edx
sub eax, edx
cmp eax, ecx
je 0x4983e1
cmp word [esi + 0xc], 0xffff
je case.0x4980d1.19
push esi
call fcn.0049f5f0
add esp, 4
test al, al
jne case.0x4980d1.19
mov eax, dword [esp + 0x64]
lea ecx, [esi + 0xc]
lea edx, [esi + 0x26]
push ecx
push edx
push eax
jmp 0x498d8c
mov eax, dword [esi + 0x3c]
cmp eax, 0x3c0000
jge 0x4997bc
add eax, 0x10000
mov dword [esi + 0x3c], eax
jmp case.0x4980d1.19
mov eax, dword [esi + 8]
test ah, 8
je 0x4986de
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 8
jne 0x49856e
push ebx
call fcn.004a4660
mov edi, 0xffff
add esp, 4
cmp word [eax + 0x260a6], di
jne 0x498488
mov eax, dword [esi + 8]
test ah, 0x40
jne 0x498488
and ah, 0xfd
xor edx, edx
or ah, 0x40
push 0x16
mov dword [esi + 8], eax
mov dl, byte [esi + 0x18]
shl edx, 8
push esi
mov eax, dword [edx + 0x77e258]
mov dword [esi], eax
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
push ebx
call fcn.004a4660
add esp, 4
cmp word [eax + 0x260a6], di
je 0x49856e
mov eax, dword [esi + 8]
test ah, 0x40
jne 0x49856e
push ebx
call fcn.004a4660
add esp, 4
mov ebp, eax
push ebx
call fcn.004a4660
mov ecx, eax
xor eax, eax
add esp, 4
mov ax, word [ecx + 0x260a6]
push ebx
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov eax, dword [ebp + eax*4 + 0x30]
cdq
and edx, edi
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
inc al
mov byte [esp + 0x68], al
call fcn.004a4660
add esp, 4
mov ebp, eax
push ebx
call fcn.004a4660
mov ecx, eax
xor eax, eax
add esp, 4
mov ax, word [ecx + 0x260a6]
mov cl, byte [esp + 0x64]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov eax, dword [ebp + eax*4 + 0x34]
cdq
and edx, edi
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
sub al, 2
mov byte [esp + 0x60], al
mov al, byte [esi + 0x4c]
cmp cl, al
jne 0x498540
mov dl, byte [esp + 0x60]
mov al, byte [esi + 0x4d]
cmp dl, al
je 0x49856e
push 0x16
push esi
call fcn.0049deb0
xor eax, eax
mov dl, byte [esp + 0x6c]
mov al, byte [esi + 0x18]
add esp, 8
shl eax, 8
mov ecx, dword [eax + 0x77e258]
mov al, byte [esp + 0x60]
mov dword [esi], ecx
mov byte [esi + 0x48], dl
mov byte [esi + 0x49], al
jmp case.0x4980d1.19
mov edx, dword [esi + 0x3c]
lea edi, [esi + 0x48]
lea ebp, [esi + 0x49]
xor eax, eax
mov al, byte [edi]
xor ecx, ecx
mov cl, byte [ebp]
cmp edx, 0xa0000
je 0x4985c7
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 8
cmp byte [edx + 0x77e27d], 2
jne 0x4985c7
push 0
push ebx
push esi
push ecx
push eax
call fcn.0045d990
add esp, 0x14
test eax, eax
jne 0x4985c7
push 8
push ebp
push edi
call fcn.004a60e0
add esp, 0xc
push 0x16
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov eax, dword [esi + 0x3c]
cmp eax, 0xa0000
jle 0x4985de
add eax, 0xffff0000
mov dword [esi + 0x3c], eax
jmp case.0x4980d1.19
push ebx
push esi
call fcn.0049e3e0
add esp, 8
test al, al
jne case.0x4980d1.19
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
cmp byte [eax + 0x77e27d], 8
jne 0x498621
push ebx
call fcn.004a4660
add esp, 4
mov byte [eax + 0x262a5], 0
push ebx
call fcn.004a4660
add esp, 4
mov ecx, eax
call fcn.0046eaf0
push 0x16
push esi
call fcn.0049deb0
mov eax, ebx
mov ecx, dword [esi + 8]
and eax, 0xff
and ch, 0xfc
or ch, 0x40
add esp, 8
lea edx, [eax + eax*4]
mov dword [esi + 8], ecx
shl edx, 4
sub edx, eax
lea edi, [eax + edx*4]
lea edi, [edi + edi*2]
shl edi, 3
cmp byte [edi + 0x4f4119], 1
jne case.0x4980d1.19
mov al, byte [esi + 0x2c]
lea ebp, [edi + 0x4f4118]
push eax
mov ecx, ebp
call fcn.00420480
and eax, 0xff
push ebx
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov ecx, dword [edi + edx*4 + 0x4f4164]
or ecx, 1
lea eax, [edi + edx*4 + 0x4f4164]
mov dword [eax], ecx
mov al, byte [esi + 0x2c]
mov byte [esp + 0x68], al
call fcn.004a4660
mov ecx, dword [esp + 0x68]
mov ebx, eax
mov eax, ecx
add esp, 4
and eax, 0xff
mov dword [esp + 0x64], ebx
mov ebx, eax
push ecx
shl ebx, 3
mov ecx, ebp
sub ebx, eax
call fcn.00420480
and eax, 0xff
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x64]
mov cl, byte [eax + ebx*8 + 0x26322]
mov byte [edi + edx*4 + 0x4f416b], cl
jmp case.0x4980d1.19
movsx edi, byte [esi + 0x29]
push ebx
lea edi, [edi + edi*4]
shl edi, 2
call fcn.004a4660
mov cl, byte [eax + edi + 0x26611]
add esp, 4
cmp cl, 3
jne 0x49871b
mov eax, dword [esi + 8]
test ah, 1
jne 0x49871b
and ah, 0xfd
push 0x16
push esi
mov dword [esi + 8], eax
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
cmp word [esi + 0xc], 0xffff
jne 0x498735
push str.EnemyIndex_out_of_range__1_
push str.Unit.cpp
call fcn.0042b590
add esp, 8
mov eax, dword [esi + 8]
test ah, 1
je 0x49879a
lea ebp, [esi + 0x48]
xor ecx, ecx
mov cl, byte [esi + 0x49]
xor eax, eax
mov al, byte [ebp]
push 0
push ebx
push esi
push ecx
push eax
call fcn.0045d990
add esp, 0x14
test eax, eax
jne 0x49879a
mov eax, dword [esi + 8]
test ah, 8
jne 0x49879a
lea ebx, [esi + 0x49]
push 8
push ebx
push ebp
call fcn.004a60e0
mov eax, dword [esp + 0x2c]
mov dl, byte [ebp]
add esp, 0xc
mov byte [eax + edi + 0x2660e], dl
mov cl, byte [ebx]
push 0x16
push esi
mov byte [eax + edi + 0x2660f], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
cmp dword [esi + 0x3c], 0x3c0000
jne 0x4987d4
mov eax, dword [esi + 8]
test ah, 1
jne 0x4987d4
xor eax, eax
mov ecx, dword [esp + 0x20]
mov ax, word [esi + 0xc]
push esi
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [ecx + eax*4 + 0x84]
push edx
call fcn.004954b0
add esp, 8
test al, al
je case.0x4980d1.19
mov eax, dword [esi + 0x3c]
cmp eax, 0xa0000
jle 0x4987eb
add eax, 0xffff0000
mov dword [esi + 0x3c], eax
jmp case.0x4980d1.19
mov eax, dword [esi + 8]
test ah, 8
jne case.0x4980d1.19
test ah, 1
je 0x49893e
cmp word [esi + 0xc], 0xffff
jne 0x49881a
push str.EnemyIndex_out_of_range__2_
push str.Unit.CPP
call fcn.0042b590
add esp, 8
xor eax, eax
mov ebp, dword [esp + 0x20]
mov ax, word [esi + 0xc]
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
mov eax, dword [ebp + edx*4 + 0x38]
and ah, 0xfe
lea edi, [ebp + edx*4 + 0x30]
mov dword [edi + 8], eax
xor eax, eax
mov dword [edi + 0x3c], 0
mov al, byte [esi + 0x26]
push eax
xor eax, eax
mov ax, word [esi + 0xc]
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
lea eax, [ebp + edx*4 + 0x30]
push eax
call fcn.0049deb0
xor ecx, ecx
xor edx, edx
mov cl, byte [edi + 0x4b]
mov dl, byte [edi + 0x4a]
and ebx, 0xff
add esp, 8
mov eax, dword [ecx*4 + 0x547df0]
add eax, edx
mov edx, ebx
or edx, 8
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
and ecx, 0xfffffff8
mov dword [eax*4 + 0x517df4], ecx
xor eax, eax
mov al, byte [edi + 0x4b]
xor ecx, ecx
mov cl, byte [edi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
or ecx, edx
mov dword [eax*4 + 0x517df4], ecx
xor eax, eax
mov al, byte [edi + 0x18]
shl eax, 8
mov cl, byte [eax + 0x77e261]
test cl, cl
je 0x498912
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
shl ebx, 0x19
mov eax, dword [ecx*4 + 0x547df0]
add eax, edx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
and ecx, 0xf1ffffff
mov dword [eax*4 + 0x517df4], ecx
xor eax, eax
mov al, byte [esi + 0x4b]
xor ecx, ecx
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
or dword [eax*4 + 0x517df4], ebx
xor eax, eax
push 0x16
mov al, byte [esi + 0x29]
push esi
lea edx, [eax + eax*4]
mov byte [ebp + edx*4 + 0x26611], 0
mov edi, dword [esi + 8]
and edi, 0xfffffeff
mov dword [esi + 8], edi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
cmp word [esi + 0xc], 0xffff
jne 0x498958
push str.EnemyIndex_out_of_range__3_
push str.Unit.CPP
call fcn.0042b590
add esp, 8
xor eax, eax
mov ebx, dword [esp + 0x20]
mov ax, word [esi + 0xc]
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
mov ebp, dword [ebx + edx*4 + 0x38]
lea edi, [ebx + edx*4 + 0x30]
test ebp, 0x100
jne 0x498ab7
cmp dword [edi + 0x10], 0x12
jne 0x498ab7
mov al, byte [edi + 0x4a]
mov cl, byte [edi + 0x4c]
cmp al, cl
jne 0x498998
mov dl, byte [edi + 0x4b]
cmp dl, byte [edi + 0x4d]
je 0x4989cb
test ebp, 0x10000000
je 0x4989cb
xor edx, edx
and ecx, 0xff
mov dl, byte [edi + 0x4d]
and eax, 0xff
push edx
push ecx
xor ecx, ecx
mov cl, byte [edi + 0x4b]
push ecx
push eax
push str.unit_has_blockTo___d__d__and_blockFrom___d__d__different
push str.UpdateUnit
call fcn.0042b590
add esp, 0x18
xor edx, edx
xor eax, eax
mov dl, byte [edi + 0x4b]
mov al, byte [edi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
xor edx, edx
add eax, ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
and ecx, 0xfffffff7
mov dword [eax*4 + 0x517df4], ecx
mov dl, byte [edi + 0x4b]
xor eax, eax
mov al, byte [edi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x517df4]
test eax, 0x3e0
je 0x498a53
and al, 0xf8
xor edx, edx
mov dword [ecx*4 + 0x517df4], eax
mov dl, byte [edi + 0x4b]
xor eax, eax
mov al, byte [edi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
mov edx, ecx
shr edx, 0x19
and edx, 7
or edx, ecx
mov dword [eax*4 + 0x517df4], edx
test dword [edi + 8], 0x10000000
je 0x498a6e
push str.Unit_has_UFLAGS_BLOCKTOMARKED_when_being_picked_up
push str.UpdateUnit
call fcn.0042b590
add esp, 8
mov eax, dword [esi + 8]
push 0x13
and eax, 0xfbffffff
push edi
or ah, 1
mov dword [esi + 8], eax
mov ebp, dword [edi + 8]
or ebp, 0x100
mov byte [edi + 0x19], 0
mov dword [edi + 8], ebp
call fcn.0049deb0
xor eax, eax
add esp, 8
mov al, byte [esi + 0x29]
push 0x16
push esi
lea ecx, [eax + eax*4]
mov byte [ebx + ecx*4 + 0x26611], 4
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov edx, dword [esi + 8]
push 0x16
and dh, 0xfd
push esi
or dh, 0x40
mov dword [esi + 8], edx
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov ax, word [esi + 0xc]
cmp ax, 0xffff
mov dword [esp + 0x2c], eax
je 0x498c14
mov al, byte [esi + 0x4f]
test al, al
jne 0x498c14
mov al, byte [esi + 0x26]
mov di, word [esi + 0xc]
push eax
mov dword [esp + 0x30], edi
call fcn.004a4660
mov ecx, edi
add esp, 4
and ecx, 0xffff
lea edx, [ecx + ecx*8]
lea ecx, [ecx + edx*4]
lea ecx, [eax + ecx*4 + 0x30]
mov eax, dword [ecx + 0x90]
cmp eax, 1
jne 0x498bfa
mov ebp, dword [ecx + 0x34]
mov eax, dword [esi + 0x34]
sub eax, ebp
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [ecx + 0x38]
mov edi, eax
mov eax, dword [esi + 0x38]
sub eax, edx
mov dword [esp + 0x60], edx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cdq
and edx, 0xffff
sar edi, 0x10
add eax, edx
mov edx, edi
sar eax, 0x10
imul edx, edi
mov edi, eax
imul edi, eax
add edx, edi
cmp edx, 0x24
jae 0x498beb
xor eax, eax
mov al, byte [ecx + 0x18]
shl eax, 8
cmp byte [eax + 0x77e27d], 5
je 0x498beb
test dword [ecx + 8], 0x140
jne 0x498ba1
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00496b00
jmp 0x49b632
mov al, byte [esi + 0x1c]
test al, al
jne case.0x4980d1.19
mov edx, dword [esp + 0x2c]
mov al, byte [esi + 0x26]
push 1
push edx
push eax
mov eax, dword [esp + 0x6c]
cdq
and edx, 0xffff
mov ecx, dword [esp + 0x70]
add eax, edx
sar eax, 0x10
push eax
mov eax, ebp
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
push ecx
push ebx
push esi
call fcn.00495b90
add esp, 0x20
jmp case.0x4980d1.19
mov word [esi + 0xc], 0xffff
mov byte [esi + 0x26], 0xff
jmp case.0x4980d1.19
cmp eax, 2
jne case.0x4980d1.19
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00496d10
jmp 0x49b632
mov al, byte [esi + 0x50]
mov dl, byte [esi + 0x51]
mov cl, byte [esi + 0x4f]
movzx di, al
movzx bp, dl
shl edi, 5
shl ebp, 5
add edi, 0x10
add ebp, 0x10
test cl, cl
je 0x498c4c
mov byte [esi + 0x48], al
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
mov byte [esi + 0x49], dl
call fcn.00494260
jmp 0x49b632
mov eax, dword [esp + 0x60]
mov ecx, dword [0x5173f4]
cdq
xor eax, edx
and ecx, 7
sub eax, edx
and eax, 7
xor eax, edx
sub eax, edx
cmp eax, ecx
je 0x498c83
cmp word [esp + 0x2c], 0xffff
jne 0x498c83
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
jmp 0x49b632
mov edx, dword [esp + 0x64]
lea ecx, [esi + 0xc]
lea eax, [esi + 0x26]
push ecx
push eax
push edx
push ebx
push esi
call fcn.00496480
add esp, 0x14
test al, al
jne 0x49b472
xor eax, eax
push 1
mov al, byte [esi + 0x18]
push 0
shl eax, 8
push 0
and ebp, 0xffff
mov cl, byte [eax + 0x77e25d]
mov dl, byte [eax + 0x77e25c]
push ecx
lea eax, [esp + 0x26]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
lea edx, [esp + 0x64]
lea eax, [esp + 0x68]
mov ecx, ebx
push edx
push eax
and ecx, 0xff
push 0xc0
push ecx
and edi, 0xffff
push ebp
push edi
call fcn.004a4900
add esp, 0x34
test al, al
je 0x498d31
mov al, byte [esp + 0x5c]
cmp al, 8
mov byte [esi + 0x26], al
jbe 0x498d17
push str.EnemySide___kMaxSides
push str.Model.cpp
call fcn.0042b590
add esp, 8
mov eax, dword [esp + 0x64]
mov dx, word [esp + 0x16]
push eax
push ebx
push esi
mov word [esi + 0xc], dx
call fcn.00496b00
jmp 0x49b632
mov eax, dword [esp + 0x64]
mov cl, byte [esi + 0x50]
mov dl, byte [esi + 0x51]
push eax
push ebx
push esi
mov byte [esi + 0x48], cl
mov byte [esi + 0x49], dl
mov byte [esi + 0x74], 0
call fcn.00494260
add esp, 0xc
test al, al
jne case.0x4980d1.19
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
mov al, byte [ecx + 0x77e261]
test al, al
je 0x498d75
push 0
push esi
call fcn.00494050
add esp, 8
test byte [esi + 8], 0x10
jne case.0x4980d1.19
mov edx, dword [esp + 0x64]
lea eax, [esi + 0xc]
push eax
lea eax, [esi + 0x26]
push eax
push edx
push ebx
push esi
call fcn.00496480
add esp, 0x14
test al, al
jne case.0x4980d1.19
push esi
call fcn.00494210
add esp, 4
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x498dc4
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
jmp 0x49b632
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00496b00
jmp 0x498df6
mov al, byte [esi + 0x4f]
test al, al
je 0x498dea
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
jmp 0x49b632
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00496d10
add esp, 0xc
test al, al
jne case.0x4980d1.19
push 7
push esi
call fcn.0049deb0
add esp, 8
mov dword [esi + 0x14], 1
mov word [esi + 0xc], 0xffff
jmp case.0x4980d1.19
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00496ff0
add esp, 0xc
jmp 0x498f14
mov al, byte [esi + 0x29]
test al, al
je 0x4997bc
dec al
mov byte [esi + 0x29], al
jmp case.0x4980d1.19
mov eax, dword [esi + 8]
test eax, 0x20000
je 0x498e78
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494cd0
add esp, 0xc
test al, al
jne case.0x4980d1.19
push 0x11
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
test al, 0x40
je 0x498f2c
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 8
jne 0x498eb9
test ah, 1
je 0x498eb9
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x260a6]
cmp ax, 0xffff
je 0x498eb9
and eax, 0xffff
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea eax, [ecx + eax*4 + 0x58]
or dword [eax], 0x20
mov eax, dword [esi + 8]
test ah, 2
je 0x498f03
mov cl, byte [esi + 0x29]
push ebx
mov byte [esp + 0x64], cl
call fcn.004a4660
mov edx, eax
add esp, 4
movsx eax, byte [esp + 0x60]
lea eax, [eax + eax*4]
cmp byte [edx + eax*4 + 0x26611], 3
jne 0x498f03
mov eax, dword [esi + 8]
test ah, 1
jne 0x498f03
and ah, 0xfd
push 2
push esi
mov dword [esi + 8], eax
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov ecx, dword [esp + 0x64]
push 0
push ecx
push ebx
push esi
call fcn.00494fd0
add esp, 0x10
test al, al
jne case.0x4980d1.19
push 2
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00494260
add esp, 0xc
test al, al
jne case.0x4980d1.19
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x4997bc
cmp eax, 7
je 0x4997bc
cmp eax, 0x12
je 0x4997bc
push eax
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
cmp byte [eax + 0x77e27d], 2
jne 0x498f91
push 2
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 0x49]
mov cl, byte [esi + 0x48]
lea eax, [esp + 0x14]
mov dword [esp + 0x54], edx
push 0
push eax
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x49]
mov al, byte [esi + 0x48]
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x2c]
shl edx, 5
push ecx
push edx
shl eax, 5
push eax
call fcn.004a5270
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4990af
mov eax, dword [esp + 0x24]
cmp bl, al
jne 0x499043
xor ecx, ecx
mov cl, byte [edi + 0x18]
shl ecx, 8
mov al, byte [ecx + 0x77e261]
test al, al
je 0x499077
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 8
mov al, byte [edx + 0x77e261]
test al, al
je 0x499077
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x49]
mov cl, byte [esi + 0x48]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x517df4]
push eax
call fcn.0044da90
add esp, 4
test eax, eax
jne 0x499075
mov cl, byte [esi + 0x4c]
mov al, byte [esi + 0x48]
cmp cl, al
jne 0x499077
mov dl, byte [esi + 0x4d]
mov al, byte [esi + 0x49]
cmp dl, al
jne 0x499077
jmp 0x499075
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
mov dl, byte [eax + ecx*8 + 0x798830]
test dl, dl
je 0x499077
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push 0
push ebx
push esi
push edx
push eax
call fcn.0045d990
add esp, 0x14
test eax, eax
je 0x499077
xor edi, edi
test edi, edi
je 0x4990af
cmp edi, esi
je 0x4990af
mov eax, dword [esp + 0x24]
mov ecx, ebx
and ecx, 0xff
and eax, 0xff
mov dl, byte [eax + ecx*8 + 0x798830]
test dl, dl
jne 0x4990e1
mov dl, byte [esi + 0x49]
mov al, byte [esi + 0x48]
push edx
push eax
push ebx
push esi
call fcn.00497af0
add esp, 0x10
jmp 0x4990e1
push 1
push 1
push ebx
push esi
call fcn.00495560
add esp, 0x10
test al, al
jne 0x4990e1
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 1
jne 0x4990d6
push 0xc
jmp 0x4990d8
push 2
push esi
call fcn.0049deb0
add esp, 8
mov al, byte [esi + 0x4f]
test al, al
jne case.0x4980d1.19
push esi
call fcn.0049d280
add esp, 4
test al, al
jne case.0x4980d1.19
xor edx, edx
mov dl, byte [esi + 0x18]
shl edx, 8
cmp byte [edx + 0x77e27d], 1
jne 0x4997bc
push 0xc
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49913a
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
jmp 0x49b632
lea edx, [esp + 0x50]
xor ecx, ecx
mov cl, byte [esi + 0x4b]
push 0
xor eax, eax
push edx
mov al, byte [esi + 0x4a]
push ebx
push esi
push ecx
push eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
call fcn.0045dee0
add esp, 0x18
test al, al
je 0x4991b3
mov edx, dword [esi + 0x14]
mov al, byte [esp + 0x50]
mov cl, byte [esp + 0x54]
cmp edx, 3
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
jne 0x49917f
mov byte [esi + 0x50], al
mov byte [esi + 0x51], cl
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
add esp, 0xc
test al, al
je 0x499261
test dword [esi + 8], 0x10000000
je case.0x4980d1.19
push 7
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov byte [esp + 0x64], 0
xor ebp, ebp
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ebp
push ecx
push edx
call fcn.0045de30
add esp, 0xc
lea ecx, [esp + 0x14]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
push 0
push ecx
lea ecx, [esp + 0x2c]
shl edx, 5
push ecx
push edx
shl eax, 5
push eax
call fcn.004a5270
mov edi, eax
add esp, 0x14
test edi, edi
je 0x499249
mov eax, dword [esp + 0x24]
mov edx, ebx
and edx, 0xff
and eax, 0xff
mov cl, byte [eax + edx*8 + 0x798830]
test cl, cl
jne 0x499249
push 0
push edi
call fcn.0049f4a0
add esp, 8
test al, al
je 0x499249
mov eax, dword [edi + 0x10]
cmp eax, 7
je 0x499249
cmp eax, 0x1a
je 0x499249
cmp eax, 0xb
je 0x499249
cmp eax, 9
je 0x499249
push 9
push edi
call fcn.0049deb0
add esp, 8
mov byte [esp + 0x64], 1
add ebp, 4
cmp ebp, 0x20
jb 0x4991ba
mov al, byte [esp + 0x64]
test al, al
jne case.0x4980d1.19
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x4997bc
cmp eax, 0x12
je 0x4997bc
push eax
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49929d
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
jmp 0x49b632
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x49]
mov al, byte [esi + 0x48]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x517df4]
test eax, 0x3f8
je 0x4992db
and eax, 7
cmp al, bl
je 0x4992db
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00496ff0
jmp 0x49b632
mov eax, dword [esi + 0x14]
mov cl, byte [esi + 0x50]
mov dl, byte [esi + 0x51]
push eax
push esi
mov byte [esi + 0x48], cl
mov byte [esi + 0x49], dl
mov byte [esi + 0x75], 0
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
add esp, 0xc
test al, al
jne 0x499320
push 0xc
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x4a]
mov al, byte [esi + 0x48]
mov edi, edx
sub edi, eax
jmp 0x4999dd
mov al, byte [esi + 0x25]
test al, al
je 0x499344
dec al
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
cmp byte [esi + 0x29], 7
jb 0x49935a
push 0xd
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov dl, byte [esi + 0x4a]
mov al, byte [esi + 0x4b]
mov byte [esp + 0x18], dl
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push edx
mov byte [esp + 0x24], al
call fcn.0044d970
add esp, 8
test al, al
je 0x499443
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push 0
and ecx, 0xff
push ebx
and eax, 0xff
push esi
push ecx
push eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
call fcn.0045d990
add esp, 0x14
test eax, eax
je 0x4993d3
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1c]
push 0xb
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
mov byte [esi + 0x50], al
mov byte [esi + 0x51], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x20]
and edx, 0xff
lea ecx, [esp + 0x2c]
and eax, 0xff
shl edx, 5
push ecx
push edx
shl eax, 5
push eax
call fcn.004a5270
add esp, 0x14
test eax, eax
je 0x499dd2
xor ecx, ecx
mov cl, byte [eax + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 1
je 0x499dd2
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1c]
push 0xb
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
mov byte [esi + 0x50], al
mov byte [esi + 0x51], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov dl, byte [esp + 0x18]
mov al, byte [esp + 0x1c]
xor ecx, ecx
mov byte [esi + 0x50], dl
mov cl, byte [esi + 0x4b]
xor edx, edx
mov dl, byte [esi + 0x4a]
mov byte [esi + 0x51], al
mov ecx, dword [ecx*4 + 0x547df0]
add ecx, edx
lea ecx, [ecx + ecx*2]
mov eax, dword [ecx*4 + 0x517df4]
mov edx, eax
and edx, 0x700000
je 0x499769
mov edi, 0x200000
cmp edx, edi
ja 0x499584
je 0x499529
cmp edx, 0x100000
jne 0x4996c7
and eax, 0xff8fffff
push 0x135b
push str.C:MsDevProjectsJuly2000codeunit.cpp
mov dword [ecx*4 + 0x517df4], eax
call fcn.00448460
mov ecx, eax
xor edx, edx
mov dl, byte [esi + 0x4b]
xor eax, eax
mov al, byte [esi + 0x4a]
and ecx, 7
mov edi, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, edi
add esp, 8
lea edx, [eax + eax*2]
mov ax, word [ecx*2 + str.0123DEFG]
mov word [edx*4 + 0x517df0], ax
mov eax, dword [0x4eb018]
cmp eax, 0x10
jne 0x49950d
mov cx, word [0x5173f0]
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
push ecx
push edx
push eax
call fcn.004620b0
add esp, 0xc
jmp 0x4996c7
mov cl, byte [0x51778c]
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
push ecx
push edx
push eax
call fcn.00462010
add esp, 0xc
jmp 0x4996c7
and eax, 0xff8fffff
xor edx, edx
mov dword [ecx*4 + 0x517df4], eax
mov dl, byte [esi + 0x4a]
xor ecx, ecx
mov cl, byte [esi + 0x4b]
mov eax, dword [ecx*4 + 0x547df0]
xor ecx, ecx
add eax, edx
lea eax, [eax + eax*2]
mov edi, dword [eax*4 + 0x517df4]
or edi, 0x100000
mov dword [eax*4 + 0x517df4], edi
mov cl, byte [esi + 0x4a]
xor eax, eax
mov al, byte [esi + 0x4b]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov word [edx*4 + 0x517df0], 0x319
jmp 0x4996c7
cmp edx, 0x400000
ja 0x499628
je 0x4995f7
cmp edx, 0x300000
jne 0x4996c7
and eax, 0xff8fffff
xor edx, edx
jmp 0x8d73a0
and eax, 0xff8fffff
mov dword [ecx*4 + 0x517df4], eax
xor eax, eax
mov al, byte [esi + 0x4b]
xor ecx, ecx
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov edi, dword [eax*4 + 0x517df4]
or edi, 0x300000
jmp 0x49969e
cmp edx, 0x500000
je 0x49966f
cmp edx, 0x600000
je 0x499644
cmp edx, 0x700000
jne 0x4996c7
and eax, 0xff8fffff
mov dword [ecx*4 + 0x517df4], eax
xor eax, eax
mov al, byte [esi + 0x4b]
xor ecx, ecx
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
or dword [eax*4 + 0x517df4], edi
jmp 0x4996a5
and eax, 0xff8fffff
mov dword [ecx*4 + 0x517df4], eax
xor eax, eax
mov al, byte [esi + 0x4b]
xor ecx, ecx
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov edi, dword [eax*4 + 0x517df4]
or edi, 0x400000
mov dword [eax*4 + 0x517df4], edi
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov word [edx*4 + 0x517df0], 0x2ed
xor eax, eax
mov al, byte [esi + 0x4a]
lea ecx, [eax - 1]
add eax, 2
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov cl, byte [esi + 0x4b]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x30]
lea edx, [ecx - 1]
add ecx, 2
push eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], ecx
call fcn.0044ec50
mov al, byte [esi + 0x29]
mov dl, byte [esi + 0x54]
mov cl, byte [0x6b8820]
add esp, 4
inc al
mov byte [esi + 0x25], cl
mov byte [esi + 0x29], al
mov eax, dword [esi + 0x34]
shr dl, 2
mov byte [esp + 0x64], dl
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
and eax, 0xff
sar ecx, 0x10
mov al, byte [eax + 0x6d6119]
sar edi, 0x10
cmp al, 0x40
jae case.0x4980d1.19
push 0
push 0
push 0
push 0
push 0
push edi
push ecx
push eax
push ebx
call fcn.00456df0
add esp, 0x24
jmp case.0x4980d1.19
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push edx
push ebx
push esi
call fcn.0044d760
add esp, 0x10
test al, al
je 0x4997a5
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1c]
push 0xb
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
mov byte [esi + 0x50], al
mov byte [esi + 0x51], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x29]
test al, al
je 0x4997bc
push 0xd
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
push 2
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov ax, word [esi + 0x58]
push eax
push ebx
call fcn.004a4740
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x28], edi
je 0x499957
xor eax, eax
mov al, byte [edi + 0x34]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea edx, [eax + ecx*2]
cmp byte [edx*4 + 0x6dc59c], 4
jne 0x499957
mov eax, dword [edi]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
xor eax, eax
sar ecx, 5
mov byte [esp + 0x18], cl
mov al, byte [edi + 0x34]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
xor edx, edx
mov dl, byte [eax*4 + 0x6dc5c6]
mov eax, dword [edi + 4]
mov ebp, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, ebp
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
sar eax, 5
mov byte [esp + 0x1c], al
mov dl, byte [edi + 0x34]
mov ebp, edx
shl ebp, 5
add ebp, edx
lea edx, [edx + ebp*2]
add cl, byte [edx*4 + 0x6dc5a0]
xor edx, edx
mov byte [esp + 0x18], cl
mov dl, byte [edi + 0x34]
mov edi, edx
shl edi, 5
add edi, edx
lea edx, [edx + edi*2]
add al, byte [edx*4 + 0x6dc5a1]
mov byte [esi + 0x48], cl
mov byte [esp + 0x1c], al
mov byte [esi + 0x49], al
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
mov al, byte [esp + 0x24]
mov cl, byte [esi + 0x4a]
add esp, 0xc
cmp cl, al
mov cl, byte [esp + 0x1c]
jne 0x4998b7
cmp byte [esi + 0x4b], cl
je 0x4998ca
test dword [esi + 8], 0x10000000
je 0x4998d9
cmp byte [esi + 0x4c], al
jne 0x4998d9
cmp byte [esi + 0x4d], cl
jne 0x4998d9
push 0xe
push esi
mov byte [esi + 0x1e], 0
call fcn.0049deb0
add esp, 8
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0x20]
and eax, 0xff
lea edx, [esp + 0x2c]
and ecx, 0xff
shl eax, 5
push edx
push eax
shl ecx, 5
push ecx
call fcn.004a5270
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4999cf
push 0
push edi
call fcn.0049f4a0
add esp, 8
test al, al
je 0x4999cf
mov eax, dword [edi + 0x10]
cmp eax, 2
je 0x499936
cmp eax, 3
jne 0x4999cf
mov eax, dword [esp + 0x24]
mov edx, ebx
and edx, 0xff
and eax, 0xff
mov cl, byte [eax + edx*8 + 0x798830]
test cl, cl
jne 0x4999cf
push 9
push edi
jmp 0x4999c7
mov al, byte [esi + 0x4b]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
mov cl, byte [esi + 0x4a]
push edx
push 4
push ebx
push eax
push ecx
call fcn.004a5f80
add esp, 0x18
mov dword [esp + 0x28], eax
test eax, eax
je 0x4999ac
mov dl, byte [esp + 0x18]
mov cl, byte [esp + 0x1c]
mov byte [esi + 0x48], dl
mov byte [esi + 0x49], cl
mov dx, word [eax + 0x42]
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
mov word [esi + 0x58], dx
call fcn.00494260
add esp, 0xc
test al, al
jne 0x4999cf
mov byte [esi + 0x1e], al
push 0xe
jmp 0x4999c6
mov al, byte [esi + 0x4f]
test al, al
je 0x4999c4
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
add esp, 0xc
jmp 0x4999cf
push 2
push esi
call fcn.0049deb0
add esp, 8
xor eax, eax
xor edx, edx
mov al, byte [esi + 0x4a]
mov dl, byte [esi + 0x48]
mov edi, eax
sub edi, edx
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x4b]
mov cl, byte [esi + 0x49]
sub eax, ecx
mov edx, edi
mov ecx, eax
imul edx, edi
imul ecx, eax
mov eax, dword [0x6b8840]
add edx, ecx
cmp edx, eax
jle case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
jne case.0x4980d1.19
test dword [esi + 8], 0x10000000
jne case.0x4980d1.19
jmp 0x49a781
mov al, byte [esi + 0x4f]
test al, al
je 0x499a37
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00494260
jmp 0x49b632
mov al, byte [esi + 0x29]
test al, al
jne 0x499a4e
push 0x10
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov ax, word [esi + 0x58]
push eax
push ebx
call fcn.004a4740
mov ecx, eax
add esp, 8
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x499d55
xor eax, eax
mov al, byte [ecx + 0x34]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
cmp byte [eax*4 + 0x6dc59c], 4
jne 0x499d55
mov eax, dword [ecx]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
mov ebx, eax
xor eax, eax
sar ebx, 5
mov byte [esp + 0x18], bl
mov al, byte [ecx + 0x34]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
xor edx, edx
mov dl, byte [eax*4 + 0x6dc5c6]
mov eax, dword [ecx + 4]
mov edi, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, edi
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
sar eax, 5
mov byte [esp + 0x1c], al
mov dl, byte [ecx + 0x34]
mov edi, edx
shl edi, 5
add edi, edx
lea edx, [edx + edi*2]
add bl, byte [edx*4 + 0x6dc5a0]
xor edx, edx
mov byte [esp + 0x18], bl
mov dl, byte [ecx + 0x34]
mov ecx, edx
shl edx, 5
add edx, ecx
lea ecx, [ecx + edx*2]
mov dl, byte [ecx*4 + 0x6dc5a1]
mov cl, byte [esi + 0x4a]
add al, dl
cmp cl, bl
mov byte [esp + 0x1c], al
jne 0x499d55
cmp byte [esi + 0x4b], al
jne 0x499d55
push 0xc
push esi
call fcn.00493eb0
add esp, 8
test al, al
jne case.0x4980d1.19
mov al, byte [esi + 0x25]
test al, al
je 0x499b4a
dec al
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov al, byte [esi + 0x1e]
mov byte [esi + 0x25], 5
inc al
mov byte [esi + 0x1e], al
mov edx, dword [0x6d6118]
and edx, 0xff
and eax, 0xff
mov ecx, dword [edx*4 + 0x6d5fd0]
dec ecx
cmp eax, ecx
jl case.0x4980d1.19
push 0xf
push esi
call fcn.0049deb0
mov dl, byte [0x6b8818]
add esp, 8
mov byte [esi + 0x25], dl
jmp case.0x4980d1.19
mov al, byte [esi + 0x25]
test al, al
je 0x499ba1
dec al
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov ax, word [esi + 0x58]
push eax
push ebx
call fcn.004a4740
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x28], edi
je 0x499d55
xor eax, eax
mov al, byte [edi + 0x34]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea edx, [eax + ecx*2]
cmp byte [edx*4 + 0x6dc59c], 4
jne 0x499d55
mov eax, dword [edi]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
xor eax, eax
sar ecx, 5
mov byte [esp + 0x18], cl
mov al, byte [edi + 0x34]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
xor edx, edx
mov dl, byte [eax*4 + 0x6dc5c6]
mov eax, dword [edi + 4]
mov ebp, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, ebp
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
sar eax, 5
mov byte [esp + 0x1c], al
mov dl, byte [edi + 0x34]
mov ebp, edx
shl ebp, 5
add ebp, edx
lea edx, [edx + ebp*2]
add cl, byte [edx*4 + 0x6dc5a0]
xor edx, edx
mov byte [esp + 0x18], cl
mov dl, byte [edi + 0x34]
mov edi, edx
shl edi, 5
add edi, edx
lea edx, [edx + edi*2]
add al, byte [edx*4 + 0x6dc5a1]
mov dl, byte [esi + 0x4a]
cmp dl, cl
mov byte [esp + 0x1c], al
jne 0x499d55
cmp byte [esi + 0x4b], al
jne 0x499d55
mov al, byte [0x6b8818]
mov byte [esi + 0x25], al
mov al, byte [esi + 0x29]
test al, al
je 0x499d55
mov ecx, dword [0x6b881c]
push ecx
push ebx
call fcn.004a4660
add esp, 4
mov ecx, eax
call fcn.0046c790
push ebx
call fcn.004a4660
mov edx, dword [0x6b881c]
mov edi, dword [eax + 0x2477c]
add eax, 0x2477c
add edi, edx
add esp, 4
mov dword [eax], edi
mov cl, byte [esi + 0x29]
dec cl
mov byte [esi + 0x29], cl
mov al, byte [0x6d6128]
cmp al, 0xff
je case.0x4980d1.19
cmp word [esi + 0x58], 0xffff
jne 0x499cee
push str.refineryIndex_out_of_range__1_
push str.Unit.cpp
call fcn.0042b590
add esp, 8
push ebx
call fcn.004a4660
xor ecx, ecx
mov edi, dword [0x6b883c]
mov cx, word [esi + 0x58]
add esp, 4
lea edx, [ecx + ecx*8]
push 0
push 0
push 0
lea ecx, [ecx + edx*4]
push 0
push 0
lea ecx, [eax + ecx*4 + 0x30]
mov eax, dword [ecx + 4]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
add eax, edi
push eax
mov eax, dword [ecx]
mov ecx, dword [0x6b8838]
cdq
and edx, 0xffff
add eax, edx
mov dl, byte [0x6d6128]
sar eax, 0x10
add eax, ecx
push eax
push edx
push ebx
call fcn.00456df0
add esp, 0x24
jmp case.0x4980d1.19
push 0x10
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x25]
test al, al
je 0x499d76
dec al
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov al, byte [esi + 0x1e]
mov byte [esi + 0x25], 5
test al, al
je 0x499d8b
dec al
mov byte [esi + 0x1e], al
jmp case.0x4980d1.19
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebx
push esi
call fcn.0044d760
add esp, 0x10
test al, al
je 0x499dc1
mov dl, byte [esp + 0x18]
mov al, byte [esp + 0x1c]
push 0xb
push esi
mov byte [esi + 0x48], dl
mov byte [esi + 0x49], al
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
lea ecx, [esi + 0x49]
lea edx, [esi + 0x48]
push ecx
push edx
push ebx
call fcn.0049e290
add esp, 0xc
push 0xb
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
cmp byte [esi + 0x2f], 0x2e
jne 0x499e31
xor eax, eax
push str.Grenadier
mov al, byte [esi + 0x18]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
lea ecx, [eax*2 + 0x7891b0]
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x499e31
push eax
push 0xffff
push ebx
xor edx, edx
mov dl, byte [esi + 0x4b]
push 0x21
push eax
mov al, byte [esi + 0x4a]
shl edx, 5
shl eax, 5
push edx
push eax
call fcn.0049d2e0
add esp, 0x1c
mov al, byte [esi + 0x2f]
test al, al
ja 0x49a09a
mov al, byte [esi + 0x18]
cmp al, 0x3c
jb 0x499e5b
and eax, 0xff
push eax
push str.Invalid_unitType__d
push str.UpdateUnit
call fcn.0042b590
add esp, 0xc
test byte [esi + 8], 0x40
je 0x499e71
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
push ecx
push edx
call fcn.0049f330
add esp, 8
test dword [esi + 8], 0x400040
jne 0x49a090
mov al, byte [esp + 0x13]
test al, al
je 0x499f02
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x4b]
mov cl, byte [esi + 0x4a]
mov edx, 0x20
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
mov cl, byte [esi + 0x53]
shl edx, cl
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
not edx
and ecx, edx
mov dword [eax*4 + 0x517df4], ecx
mov eax, dword [esi + 8]
test eax, 0x10000000
je 0x49a090
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x4d]
mov cl, byte [esi + 0x4c]
mov edx, 0x20
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
mov cl, byte [esi + 0x52]
shl edx, cl
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
not edx
and ecx, edx
mov dword [eax*4 + 0x517df4], ecx
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
mov eax, dword [ecx*4 + 0x547df0]
add eax, edx
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x517df4]
test al, 8
jne 0x499f38
push eax
push ecx
push edx
push str.Error_with_unit_code._BlockFrom___d__d___x
push str.UpdateUnit
call fcn.0042b590
add esp, 0x14
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
mov edi, 0xfffffff7
mov eax, dword [ecx*4 + 0x547df0]
xor ecx, ecx
add eax, edx
lea eax, [eax + eax*2]
mov ebp, dword [eax*4 + 0x517df4]
and ebp, edi
mov dword [eax*4 + 0x517df4], ebp
mov cl, byte [esi + 0x4a]
xor eax, eax
mov al, byte [esi + 0x4b]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x517df4]
test eax, 0x3e0
je 0x499fc0
and al, 0xf8
xor edx, edx
mov dword [ecx*4 + 0x517df4], eax
mov dl, byte [esi + 0x4b]
xor eax, eax
mov al, byte [esi + 0x4a]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
mov edx, ecx
shr edx, 0x19
and edx, 7
or edx, ecx
mov dword [eax*4 + 0x517df4], edx
test dword [esi + 8], 0x10000000
je 0x49a090
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4d]
mov dl, byte [esi + 0x4c]
mov eax, dword [ecx*4 + 0x547df0]
add eax, edx
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x517df4]
test al, 8
jne 0x49a003
push eax
push ecx
push edx
push str.Error_with_unit_code._BlockTo___d__d___x
push str.UpdateUnit
call fcn.0042b590
add esp, 0x14
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4d]
mov dl, byte [esi + 0x4c]
mov eax, dword [ecx*4 + 0x547df0]
xor ecx, ecx
add eax, edx
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x517df4]
and ebx, edi
mov dword [eax*4 + 0x517df4], ebx
mov cl, byte [esi + 0x4c]
xor eax, eax
mov al, byte [esi + 0x4d]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x517df4]
test eax, 0x3e0
je 0x49a090
and al, 0xf8
xor edx, edx
mov dword [ecx*4 + 0x517df4], eax
mov dl, byte [esi + 0x4d]
xor eax, eax
mov al, byte [esi + 0x4c]
mov ecx, eax
mov eax, dword [edx*4 + 0x547df0]
add eax, ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x517df4]
mov edx, ecx
shr edx, 0x19
and edx, 7
or edx, ecx
mov dword [eax*4 + 0x517df4], edx
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
dec al
mov byte [esi + 0x2f], al
mov eax, dword [esi + 8]
test al, 0x40
je case.0x4980d1.19
test eax, 0x20000
je 0x49a0c2
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494cd0
jmp 0x49b632
mov ecx, dword [esp + 0x64]
push 0
push ecx
push ebx
push esi
call fcn.00494fd0
add esp, 0x10
jmp case.0x4980d1.19
push ebx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cl, byte [eax + 0x2688c]
xor dl, dl
test ecx, ecx
jbe 0x49a121
mov ebp, dword [esp + 0x64]
add eax, 0x26611
mov edi, ecx
cmp word [eax + 1], bp
jne 0x49a11b
cmp byte [eax], 0
je 0x49a11b
mov cl, byte [eax - 5]
cmp cl, byte [esi + 0x4a]
jne 0x49a11b
mov cl, byte [eax - 4]
cmp cl, byte [esi + 0x4b]
jne 0x49a11b
test dl, dl
jne 0x49a11b
mov dl, 1
add eax, 0x14
dec edi
jne 0x49a0fa
test dl, dl
jne 0x49a130
push 2
push esi
call fcn.0049deb0
add esp, 8
push esi
mov byte [esi + 0x2c], 0
call fcn.0049f5f0
add esp, 4
test al, al
je 0x49a14a
push esi
call fcn.0049f5c0
add esp, 4
mov eax, dword [esp + 0x60]
mov ecx, dword [0x5173f4]
cdq
xor eax, edx
and ecx, 7
sub eax, edx
and eax, 7
xor eax, edx
sub eax, edx
cmp eax, ecx
je 0x49a173
cmp word [esi + 0xc], 0xffff
je case.0x4980d1.19
push esi
call fcn.0049f5f0
add esp, 4
test al, al
jne case.0x4980d1.19
mov ecx, dword [esp + 0x64]
lea edx, [esi + 0xc]
lea eax, [esi + 0x26]
push edx
push eax
push ecx
push ebx
push esi
call fcn.00496480
add esp, 0x14
jmp case.0x4980d1.19
push 0
push 0
push ebx
push esi
call fcn.00495560
add esp, 0x10
test al, al
jne case.0x4980d1.19
mov ax, word [esi + 0xc]
cmp ax, 0xffff
je 0x49a442
mov dl, byte [esi + 0x26]
push eax
push edx
call fcn.004a4740
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
je 0x49a442
test byte [eax + 0x28], 0xc
jne 0x49a442
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
cmp byte [eax + 0x77e27d], 3
jne 0x49a35c
mov dl, byte [esi + 0x26]
xor ecx, ecx
mov cx, word [esi + 0xc]
push ecx
push ebx
push edx
call fcn.0046d6d0
add esp, 0xc
test al, al
je 0x49a442
mov al, byte [esi + 0x26]
push eax
call fcn.004a4660
mov ecx, dword [eax + 0x24a0c]
add eax, 0x24a0c
add esp, 4
inc ecx
mov dword [eax], ecx
mov cl, byte [esi + 0x26]
push ecx
call fcn.004a4660
add esp, 4
push ebx
call fcn.004a4660
mov ecx, dword [esp + 0x2c]
xor edx, edx
add esp, 4
mov dl, byte [ecx + 0x34]
xor ecx, ecx
mov cl, byte [esi + 0x26]
push ebx
lea edx, [ecx + edx*8]
mov ebp, dword [eax + edx*4 + 0x25418]
lea eax, [eax + edx*4 + 0x25418]
inc ebp
mov dword [eax], ebp
call fcn.004a4660
mov ecx, dword [eax + 0x24c94]
add eax, 0x24c94
add esp, 4
inc ecx
mov dword [eax], ecx
push ebx
call fcn.004a4660
mov edi, dword [eax + 0x24784]
add eax, 0x24784
add esp, 4
inc edi
mov dword [eax], edi
mov al, byte [esi + 0x26]
mov ecx, eax
mov edx, ebx
and ecx, 0xff
and edx, 0xff
cmp byte [edx + ecx*8 + 0x798830], 2
jne 0x49a2be
push ebx
push eax
call fcn.0049f870
add esp, 8
mov al, byte [0x798544]
cmp bl, al
jne 0x49a2f3
push 0
push 0
push 1
push str.H_CAPTURE
call fcn.0048dd90
add esp, 4
push eax
push str.O_CAPTURE
call fcn.0048dd90
add esp, 4
push eax
push str.S_CAPTURE
jmp 0x49a431
cmp byte [esi + 0x26], al
jne 0x49a442
push 0
push 0
push 1
push str.H_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
push str.O_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
push str.S_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
push 0xffffffffffffffff
push 1
push str.BuildingEngineered
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
push eax
call fcn.00425720
add esp, 8
jmp 0x49a442
mov al, byte [esi + 0x26]
push eax
call fcn.004a4660
mov ecx, dword [eax + 0x24a0c]
add eax, 0x24a0c
add esp, 4
inc ecx
mov dword [eax], ecx
mov cl, byte [esi + 0x26]
push ecx
call fcn.004a4660
add esp, 4
push ebx
call fcn.004a4660
mov ecx, dword [esp + 0x2c]
xor edx, edx
add esp, 4
mov dl, byte [ecx + 0x34]
xor ecx, ecx
mov cl, byte [esi + 0x26]
push ebx
lea edx, [ecx + edx*8]
mov ecx, dword [eax + edx*4 + 0x25418]
inc ecx
lea eax, [eax + edx*4 + 0x25418]
mov dword [eax], ecx
call fcn.004a4660
mov edi, dword [eax + 0x24c94]
add eax, 0x24c94
add esp, 4
inc edi
mov dword [eax], edi
mov al, byte [esi + 0x26]
mov ecx, eax
mov edx, ebx
and ecx, 0xff
and edx, 0xff
cmp byte [edx + ecx*8 + 0x798830], 2
jne 0x49a3eb
push ebx
push eax
call fcn.0049f870
add esp, 8
mov ax, word [esi + 0xc]
mov cl, byte [esi + 0x26]
push 0
push eax
push ecx
call fcn.0049ca10
mov dl, byte [esi + 0x26]
mov al, byte [0x798544]
add esp, 0xc
cmp dl, al
jne 0x49a442
push 0
push 0
push 1
push str.H_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
push str.O_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
push str.S_BUILDINGLOST
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
mov ebp, dword [esi + 8]
push 0
or ebp, 0x200000
push esi
mov dword [esi + 8], ebp
call fcn.00494050
add esp, 8
push ebx
call fcn.004a4660
mov edi, dword [eax + 0x24a08]
add eax, 0x24a08
add esp, 4
inc edi
mov dword [eax], edi
push ebx
call fcn.004a4660
xor ecx, ecx
mov edx, dword [esp + 0x68]
mov cl, byte [esi + 0x18]
add esp, 4
mov ebp, dword [eax + ecx*4 + 0x24a10]
lea eax, [eax + ecx*4 + 0x24a10]
inc ebp
push edx
push ebx
mov dword [eax], ebp
call fcn.0049cde0
add esp, 8
jmp case.0x4980d1.19
mov ax, word [esi + 0x5a]
push eax
push ebx
call fcn.004a4740
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x28], edi
je 0x49a614
xor eax, eax
mov al, byte [edi + 0x34]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea edx, [eax + ecx*2]
cmp byte [edx*4 + 0x6dc59c], 6
jne 0x49a614
mov eax, dword [edi]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
xor eax, eax
sar ecx, 5
mov byte [esp + 0x18], cl
mov al, byte [edi + 0x34]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
xor edx, edx
mov dl, byte [eax*4 + 0x6dc5c6]
mov eax, dword [edi + 4]
mov ebp, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
sub eax, ebp
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
sar eax, 5
mov byte [esp + 0x1c], al
mov dl, byte [edi + 0x34]
mov ebp, edx
shl ebp, 5
add ebp, edx
lea edx, [edx + ebp*2]
add cl, byte [edx*4 + 0x6dc5a0]
xor edx, edx
mov byte [esp + 0x18], cl
mov dl, byte [edi + 0x34]
mov edi, edx
shl edi, 5
add edi, edx
lea edx, [edx + edi*2]
add al, byte [edx*4 + 0x6dc5a1]
mov byte [esi + 0x48], cl
mov byte [esp + 0x1c], al
mov byte [esi + 0x49], al
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
add esp, 0xc
test al, al
jne 0x49a5e5
cmp bl, byte [0x798544]
jne 0x49a703
push 0
push 0
push 0
push str.H_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
push str.O_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
push str.S_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
mov al, byte [0x798544]
add esp, 0x18
cmp bl, al
jne 0x49a703
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x2425c]
mov edx, dword [eax + 0x24254]
add ecx, edx
jmp 0x49a6c9
mov al, byte [esp + 0x18]
mov cl, byte [esi + 0x4a]
cmp cl, al
mov cl, byte [esp + 0x1c]
jne 0x49a5f9
cmp byte [esi + 0x4b], cl
je 0x49a66a
test dword [esi + 8], 0x10000000
je 0x49a736
cmp byte [esi + 0x4c], al
jne 0x49a736
cmp byte [esi + 0x4d], cl
jmp 0x49a664
mov dl, byte [esi + 0x4b]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
mov al, byte [esi + 0x4a]
push ecx
push 6
push ebx
push edx
push eax
call fcn.004a5f80
add esp, 0x18
mov dword [esp + 0x28], eax
test eax, eax
je 0x49a713
mov cl, byte [esp + 0x18]
mov dl, byte [esp + 0x1c]
mov byte [esi + 0x48], cl
mov ecx, dword [esp + 0x64]
mov byte [esi + 0x49], dl
mov ax, word [eax + 0x42]
push ecx
push ebx
push esi
mov word [esi + 0x5a], ax
call fcn.00494260
add esp, 0xc
test al, al
jne 0x49a736
cmp bl, byte [0x798544]
jne 0x49a703
push 0
push 0
push 0
push str.H_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
push str.O_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
push str.S_REPAIRUNIT
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
mov al, byte [0x798544]
add esp, 0x18
cmp bl, al
jne 0x49a703
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x2425c]
mov ecx, dword [eax + 0x24254]
add edx, ecx
jne 0x49a703
push 0
push 0
push 1
push str.H_LOWMONEY
call fcn.0048dd90
add esp, 4
push eax
push str.O_LOWMONEY
call fcn.0048dd90
add esp, 4
push eax
push str.S_LOWMONEY
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
push 0x19
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49a72b
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
add esp, 0xc
jmp 0x49a736
push 2
push esi
call fcn.0049deb0
add esp, 8
mov al, byte [esi + 0x4f]
test al, al
jne case.0x4980d1.19
test dword [esi + 8], 0x10000000
jne case.0x4980d1.19
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 0x4a]
mov cl, byte [esi + 0x48]
mov edi, edx
xor eax, eax
mov al, byte [esi + 0x4b]
sub edi, ecx
xor ecx, ecx
mov edx, edi
mov cl, byte [esi + 0x49]
imul edx, edi
sub eax, ecx
mov ecx, eax
imul ecx, eax
mov eax, dword [0x6b8844]
add edx, ecx
cmp edx, eax
jle case.0x4980d1.19
push esi
push ebx
call fcn.004a4660
add esp, 4
mov ecx, eax
call fcn.0046cca0
cmp al, 0xff
mov byte [esp + 0x60], al
je case.0x4980d1.19
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
push edx
push 0x64
push eax
push ecx
push esi
push ebx
call fcn.004a4660
add esp, 4
mov ecx, eax
call fcn.0046cd00
test al, al
je case.0x4980d1.19
push 0x12
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49a7ef
mov edx, dword [esp + 0x64]
push edx
push ebx
push esi
call fcn.00494260
jmp 0x49b632
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
mov ecx, dword [eax + 0x77e254]
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x49a860
mov dword [esi + 0x14], 2
mov al, byte [0x798544]
cmp bl, al
jne 0x49a899
push 0
push 0
push 0
push str.H_UNITREPAIRED
call fcn.0048dd90
add esp, 4
push eax
push str.O_UNITREPAIRED
call fcn.0048dd90
add esp, 4
push eax
push str.S_UNITREPAIRED
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
push 0x1a
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
lea edx, [esp + 0x16]
lea eax, [esp + 0x5c]
push edx
mov dl, byte [esi + 0x4b]
lea ecx, [esp + 0x2c]
push eax
mov al, byte [esi + 0x4a]
push ecx
push edx
push eax
call fcn.004a5640
add esp, 0x14
test al, al
jne 0x49a893
push 0x1a
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
cmp byte [esp + 0x5c], bl
je 0x49a8a9
push 0x1a
push esi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
xor ecx, ecx
push ebx
mov cl, byte [esi + 0x18]
push ecx
call fcn.00442bb0
imul eax, dword [0x6b884c]
xor edx, edx
add esp, 8
mov dl, byte [esi + 0x18]
mov ecx, edx
xor edx, edx
shl ecx, 8
div dword [ecx + 0x77e254]
mov edx, eax
and edx, 0xfffffffe
cmp edx, 2
jae 0x49a8e2
mov eax, 1
jmp 0x49a8e4
shr eax, 1
mov ecx, dword [esp + 0x20]
push 0
push eax
call fcn.0046c720
test al, al
je case.0x4980d1.19
mov eax, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [eax + 0x28]
or ecx, 0x20
mov dword [eax + 0x28], ecx
mov eax, dword [0x6b884c]
mov ebp, dword [esi + 4]
add ebp, eax
mov dword [esi + 4], ebp
mov dl, byte [esi + 0x18]
shl edx, 8
mov ecx, ebp
mov eax, dword [edx + 0x77e254]
cmp ecx, eax
jle 0x49a92e
mov dword [esi + 4], eax
jmp case.0x4980d1.19
cmp bl, byte [0x798544]
jne case.0x4980d1.19
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x2425c]
mov edx, dword [eax + 0x24254]
lea eax, [ecx + edx]
test eax, eax
jne 0x49a9a2
mov al, byte [0x516480]
test al, al
jne case.0x4980d1.19
push 0
push 0
push 1
push str.H_LOWMONEY
mov byte [0x516480], 1
call fcn.0048dd90
add esp, 4
push eax
push str.O_LOWMONEY
call fcn.0048dd90
add esp, 4
push eax
push str.S_LOWMONEY
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
jmp case.0x4980d1.19
cmp eax, 0x64
jb case.0x4980d1.19
mov byte [0x516480], 0
jmp case.0x4980d1.19
mov al, byte [esi + 0x25]
test al, al
je 0x49a9c3
dec al
mov byte [esi + 0x25], al
lea edx, [esp + 0x50]
xor ecx, ecx
mov cl, byte [esi + 0x4b]
push 0
xor eax, eax
push edx
mov al, byte [esi + 0x4a]
push ebx
push esi
push ecx
push eax
call fcn.0045dee0
add esp, 0x18
test al, al
je 0x49aa02
mov al, byte [esp + 0x50]
mov cl, byte [esp + 0x54]
push 8
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x25]
test al, al
jne case.0x4980d1.19
push 0x16cc
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
mov ecx, 3
div ecx
mov cl, byte [esi + 0x4a]
add esp, 8
push 0x16cd
push str.C:MsDevProjectsJuly2000codeunit.cpp
add dl, cl
dec dl
mov byte [esp + 0x20], dl
call fcn.00448460
xor edx, edx
mov ecx, 3
div ecx
mov cl, byte [esi + 0x4b]
add esp, 8
lea eax, [esp + 0x24]
push 0
add dl, cl
dec dl
mov byte [esp + 0x20], dl
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x18]
and ecx, 0xff
push edx
mov edx, dword [esp + 0x20]
and edx, 0xff
push eax
shl ecx, 5
shl edx, 5
push ecx
push edx
call fcn.004a5270
mov edi, eax
add esp, 0x14
test edi, edi
je case.0x4980d1.19
cmp edi, esi
je case.0x4980d1.19
mov eax, dword [esp + 0x24]
and ebx, 0xff
and eax, 0xff
mov cl, byte [eax + ebx*8 + 0x798830]
test cl, cl
jne case.0x4980d1.19
push 0
push edi
call fcn.0049f4a0
add esp, 8
test al, al
je case.0x4980d1.19
push 9
push edi
call fcn.0049deb0
add esp, 8
mov byte [esi + 0x25], 0x32
jmp case.0x4980d1.19
xor ecx, ecx
mov eax, dword [esi + 4]
mov cl, byte [esi + 0x18]
shl ecx, 8
mov edx, dword [ecx + 0x77e254]
shr edx, 1
cmp eax, edx
jge 0x49ab0f
push 0x1d
push esi
call fcn.0049deb0
mov al, byte [0x6b8858]
add esp, 8
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov ecx, dword [esp + 0x64]
push ecx
push ebx
push esi
call fcn.00494260
add esp, 0xc
test al, al
jne 0x49ad13
lea edx, [esp + 0x14]
push 0
push edx
xor ecx, ecx
mov cl, byte [esi + 0x4b]
xor edx, edx
mov dl, byte [esi + 0x4a]
lea eax, [esp + 0x2c]
shl ecx, 5
push eax
push ecx
shl edx, 5
push edx
call fcn.004a5270
mov edi, eax
add esp, 0x14
test edi, edi
je 0x49acf6
xor eax, eax
mov al, byte [edi + 0x18]
shl eax, 8
mov cl, byte [eax + 0x77e261]
test cl, cl
jne 0x49acf6
push 0x11
push edi
call fcn.0049deb0
mov ecx, dword [esp + 0x2c]
add esp, 8
push ecx
call fcn.004a4660
mov ecx, dword [eax + 0x24a08]
add eax, 0x24a08
add esp, 4
inc ecx
mov dword [eax], ecx
mov edx, dword [esp + 0x24]
push edx
call fcn.004a4660
xor ecx, ecx
add esp, 4
mov cl, byte [edi + 0x18]
push 0x1c
push esi
mov ebp, dword [eax + ecx*4 + 0x24a10]
lea eax, [eax + ecx*4 + 0x24a10]
inc ebp
mov dword [eax], ebp
mov edi, dword [esi + 8]
and edi, 0xfffffffb
mov byte [esi + 0x25], 0x32
mov dword [esi + 8], edi
call fcn.0049deb0
mov eax, dword [esi + 0x38]
add esp, 8
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
mov dl, byte [esi + 0x18]
sar eax, 5
shl edx, 8
push eax
movsx eax, byte [edx + 0x77e27f]
mov ecx, dword [eax*8 + 0x781e5c]
push ecx
call fcn.0046f540
mov dl, byte [esp + 0x30]
mov al, byte [0x798544]
add esp, 0xc
cmp dl, al
jne 0x49ac63
push 0
push 0
push 1
push str.H_WORMATTACK
call fcn.0048dd90
add esp, 4
push eax
push str.O_WORMATTACK
call fcn.0048dd90
add esp, 4
push eax
push str.S_WORMATTACK
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
add esp, 0x18
mov eax, dword [esi + 0x38]
push 0
cdq
and edx, 0xffff
push 0
add eax, edx
push 0
push 0
push 0
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
xor eax, eax
mov al, byte [esi + 0x18]
shl eax, 8
mov cl, byte [eax + 0x77e27f]
push ecx
push ebx
call fcn.00456df0
mov eax, dword [esi + 0x38]
add esp, 0x24
cdq
and edx, 0xffff
push 0
push 0
add eax, edx
push 0
push 0
sar eax, 0x10
push 0
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
xor edx, edx
mov dl, byte [esi + 0x18]
sar eax, 0x10
shl edx, 8
push eax
mov al, byte [edx + 0x77e27f]
inc al
push eax
push ebx
call fcn.00456df0
mov al, byte [esi + 0x29]
add esp, 0x24
inc al
mov byte [esi + 0x29], al
jmp case.0x4980d1.19
mov edi, dword [esi + 8]
push 0x1c
and edi, 0xfffffffb
push esi
mov dword [esi + 8], edi
mov byte [esi + 0x25], 0
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x75]
test al, al
je 0x49ad77
mov eax, dword [esi + 8]
lea edx, [esp + 0x50]
and al, 0xfb
xor ecx, ecx
mov dword [esi + 8], eax
mov cl, byte [esi + 0x4b]
push 0
xor eax, eax
mov al, byte [esi + 0x4a]
push edx
push ebx
push esi
push ecx
push eax
mov byte [esi + 0x75], 0
mov byte [esi + 0x25], 0
call fcn.0045dee0
add esp, 0x18
test al, al
je 0x49ad5e
mov al, byte [esp + 0x50]
mov cl, byte [esp + 0x54]
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
jmp case.0x4980d1.19
push 0x1d
push esi
call fcn.0049deb0
mov dl, byte [0x6b8858]
add esp, 8
mov byte [esi + 0x25], dl
jmp case.0x4980d1.19
test byte [esi + 8], 4
jne case.0x4980d1.19
mov al, byte [esi + 0x4e]
test al, al
je 0x49ad9c
xor ecx, ecx
and eax, 0xff
mov cl, byte [esi + 0x4f]
shl eax, 1
cmp ecx, eax
jge case.0x4980d1.19
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
call fcn.0045d730
add esp, 8
push 0x1747
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
mov ecx, 0x50
div ecx
add esp, 8
test edx, edx
jne case.0x4980d1.19
push 0x1749
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
mov ecx, 6
div ecx
xor eax, eax
add esp, 8
push 0
push 0
push 0
push 0
push 0
mov al, byte [edx + 0x6d6121]
mov edi, eax
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
push edi
push ebx
call fcn.00456df0
mov eax, dword [esi + 0x34]
mov ecx, dword [0x798538]
cdq
and edx, 0xffff
add esp, 0x24
add eax, edx
sar eax, 0x10
cmp eax, ecx
jl case.0x4980d1.19
mov edx, dword [0x786d48]
add ecx, edx
cmp eax, ecx
jg case.0x4980d1.19
mov eax, dword [esi + 0x38]
mov ecx, dword [0x79853c]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp eax, ecx
jl case.0x4980d1.19
mov edx, dword [0x6dc538]
add ecx, edx
cmp eax, ecx
jg case.0x4980d1.19
mov al, byte [0x4dfb04]
test al, al
je 0x49aec8
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x4b]
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov al, byte [edx*4 + 0x517df8]
test al, al
jne case.0x4980d1.19
push 0
push 0x7d0
push 1
push str.H_WORMSIGN
call fcn.0048dd90
add esp, 4
push eax
push str.O_WORMSIGN
call fcn.0048dd90
add esp, 4
push eax
push str.S_WORMSIGN
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f900
mov eax, dword [edi*8 + 0x781e5c]
add esp, 0x18
push eax
call fcn.0046f4f0
add esp, 4
test al, al
jne case.0x4980d1.19
mov eax, dword [esi + 0x38]
mov ecx, dword [edi*8 + 0x781e5c]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
push ecx
call fcn.0046f540
jmp 0x49b632
mov al, byte [esi + 0x25]
test al, al
je 0x49af70
dec al
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov cl, byte [esi + 0x4b]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x18]
push edx
mov dl, byte [esi + 0x4a]
push eax
push ecx
push edx
call fcn.0044d500
add esp, 0x10
test al, al
je 0x49b046
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x44]
lea ecx, [esp + 0x40]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.0044d630
add esp, 0x10
test al, al
je 0x49b028
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x49b00a
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov edx, ecx
and eax, 0xff
and edx, 0xff
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x49b00a
push 0x1b
push esi
mov byte [esi + 0x48], bl
mov byte [esi + 0x49], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1c]
push 0x1b
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov dl, byte [esp + 0x18]
mov al, byte [esp + 0x1c]
push 0x1b
push esi
mov byte [esi + 0x48], dl
mov byte [esi + 0x49], al
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4b]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
mov cl, byte [esi + 0x4a]
push edx
push eax
push ecx
call fcn.0044d630
add esp, 0x10
test al, al
je 0x49b0a6
mov dl, byte [esi + 0x29]
mov al, byte [0x6b8855]
cmp dl, al
jb 0x49b088
push 0x1d
push esi
call fcn.0049deb0
mov al, byte [0x6b8857]
add esp, 8
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
mov cl, byte [esp + 0x18]
mov dl, byte [esp + 0x1c]
push 0x1b
push esi
mov byte [esi + 0x48], cl
mov byte [esi + 0x49], dl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
push 0x17a3
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
add esp, 8
div dword [0x517de8]
push 0x17a4
mov byte [esi + 0x48], dl
jmp 0x49b12e
mov edx, dword [esi + 8]
mov al, byte [esi + 0x25]
or edx, 4
test al, al
mov dword [esi + 8], edx
jbe 0x49b0fb
mov dl, byte [esi + 0x1b]
inc dl
mov cl, dl
mov byte [esi + 0x1b], dl
cmp cl, 0x64
jbe case.0x4980d1.19
dec al
mov byte [esi + 0x1b], 0
mov byte [esi + 0x25], al
jmp case.0x4980d1.19
xor eax, eax
push 0x17c0
mov al, byte [esi + 0x18]
push str.C:MsDevProjectsJuly2000codeunit.cpp
shl eax, 8
mov ecx, dword [eax + 0x77e254]
mov dword [esi + 4], ecx
call fcn.00448460
xor edx, edx
add esp, 8
div dword [0x517de8]
push 0x17c1
mov byte [esi + 0x48], dl
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
add esp, 8
div dword [0x517dec]
push 0x1b
push esi
mov byte [esi + 0x49], dl
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49b17a
mov ecx, dword [esp + 0x64]
mov dl, byte [esi + 0x50]
mov al, byte [esi + 0x51]
push ecx
push ebx
push esi
mov byte [esi + 0x48], dl
mov byte [esi + 0x49], al
call fcn.00494260
jmp 0x49b632
push 0x1d
push esi
call fcn.00493eb0
add esp, 8
test al, al
jne case.0x4980d1.19
mov edx, ebx
xor edi, edi
and edx, 0xff
mov ebp, 0x6dc59c
lea eax, [edx + 0x8cd4f0]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov edx, 1
mov cl, byte [eax]
mov al, byte [ebp - 0x58]
shl edx, cl
test dl, al
je 0x49b1c0
cmp byte [ebp], 2
je 0x49b1e7
xor ecx, ecx
inc edi
mov cl, byte [0x79553c]
add ebp, 0x10c
cmp edi, ecx
jbe 0x49b1a6
push str.Cannot_find_correct_construction_yard
push str.UpdateUnit
call fcn.0042b590
add esp, 8
jmp 0x49b1a6
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x4b]
mov al, byte [esi + 0x4a]
push edx
push eax
call fcn.00443250
add esp, 8
test al, al
jne 0x49b20b
mov dword [esi + 0x10], 2
jmp case.0x4980d1.19
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
mov dword [esp + 0x34], 0
push 0
mov eax, dword [ecx*4 + 0x547df0]
push 0
add eax, edx
push 0
lea eax, [eax + eax*2]
mov edx, dword [eax*4 + 0x517df4]
and edx, 0xfffffff7
mov dword [eax*4 + 0x517df4], edx
xor eax, eax
mov al, byte [esi + 0x18]
mov dl, byte [esi + 0x4b]
fild dword [esi + 4]
shl eax, 8
dec dl
mov ecx, dword [eax + 0x77e254]
mov al, byte [esi + 0x4a]
mov dword [esp + 0x3c], ecx
dec al
fidiv dword [esp + 0x3c]
push edx
push eax
push edi
push ebx
fstp dword [esp + 0x80]
call fcn.004563b0
mov ebp, eax
mov al, byte [0x798544]
add esp, 0x1c
cmp bl, al
jne 0x49b29f
mov cl, byte [esi + 0x4b]
mov dl, byte [esi + 0x4a]
push ecx
push edx
push str.S_BUILDUP
call fcn.0048dd90
add esp, 4
push eax
call fcn.0046f540
add esp, 0xc
cmp bp, 0xffff
je 0x49b2ed
mov eax, edi
mov dword [esp + 0x34], 0
shl eax, 5
add eax, edi
lea ecx, [edi + eax*2]
mov edx, dword [ecx*4 + 0x6dc540]
mov dword [esp + 0x30], edx
fild qword [esp + 0x30]
fmul dword [esp + 0x64]
call fcn.004b1840
push ebx
mov edi, eax
call fcn.004a4660
add esp, 4
and ebp, 0xffff
lea ecx, [ebp + ebp*8]
lea edx, [ebp + ecx*4]
mov dword [eax + edx*4 + 0x54], edi
mov edi, dword [esi + 8]
push 0x11
or edi, 0x600000
push esi
mov dword [esi + 8], edi
call fcn.0049deb0
add esp, 8
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49b32d
mov edx, dword [esp + 0x64]
mov al, byte [esi + 0x50]
mov cl, byte [esi + 0x51]
push edx
push ebx
push esi
mov byte [esi + 0x48], al
mov byte [esi + 0x49], cl
call fcn.00494260
jmp 0x49b632
push 0x182a
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
mov ecx, 3
div ecx
add esp, 8
test edx, edx
jne 0x49b39c
mov eax, dword [esi + 0x38]
push edx
push edx
push edx
push edx
push edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
push 0x182b
push str.C:MsDevProjectsJuly2000codeunit.cpp
call fcn.00448460
xor edx, edx
mov ecx, 3
div ecx
add esp, 8
mov dl, byte [edx + 0x6d6129]
push edx
push ebx
call fcn.00456df0
add esp, 0x24
mov al, byte [esi + 0x29]
test al, al
je 0x49b3ad
dec al
mov byte [esi + 0x29], al
jmp case.0x4980d1.19
push 0x11
push esi
call fcn.0049deb0
mov eax, dword [esi + 0x38]
add esp, 8
cdq
and edx, 0xffff
push 0
push 0
add eax, edx
push 0
push 0
sar eax, 0x10
push 0
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov al, byte [0x6d612c]
push eax
push ebx
call fcn.00456df0
add esp, 0x24
push ebx
call fcn.004a4660
mov ebp, dword [eax + 0x24a08]
add eax, 0x24a08
add esp, 4
inc ebp
mov dword [eax], ebp
push ebx
call fcn.004a4660
xor ecx, ecx
mov edx, dword [esp + 0x68]
mov cl, byte [esi + 0x18]
add esp, 4
lea eax, [eax + ecx*4 + 0x24a10]
push 0
push edx
push ebx
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov al, byte [0x6d610b]
push eax
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
push 6
add eax, edx
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
call fcn.0049d2e0
add esp, 0x1c
jmp case.0x4980d1.19
mov al, byte [esi + 0x4f]
test al, al
je 0x49b483
mov cl, byte [esi + 0x50]
mov dl, byte [esi + 0x51]
mov byte [esi + 0x48], cl
mov byte [esi + 0x49], dl
mov eax, dword [esp + 0x64]
push eax
push ebx
push esi
call fcn.00494260
jmp 0x49b632
push 8
push esi
call fcn.00493eb0
add esp, 8
test al, al
jne case.0x4980d1.19
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
mov al, byte [ecx + 0x77e261]
test al, al
jne 0x49b4ba
push str.Invalid_type_for_thumper
push str.UNIT
call fcn.0042b590
add esp, 8
push 8
push esi
call fcn.00494050
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov cl, byte [esi + 0x1e]
add esp, 8
mov edx, dword [eax*8 + 0x4e9530]
inc edx
cmp ecx, edx
jne 0x49b4f4
mov dl, byte [esi + 0x29]
inc dl
cmp dl, 0x3c
mov byte [esi + 0x29], dl
jae 0x49b4ec
mov byte [esi + 0x25], 0
jmp 0x49b4f4
mov byte [esi + 0x29], 0
mov byte [esi + 0x25], 3
cmp ecx, dword [eax*8 + 0x4e9530]
jne case.0x4980d1.19
mov eax, dword [esi + 0x38]
push 0
cdq
and edx, 0xffff
push 0
add eax, edx
push 0
push 0
push 0
sar eax, 0x10
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push eax
mov al, byte [0x6d6127]
push eax
push ebx
call fcn.00456df0
mov eax, dword [esi + 0x34]
mov ecx, dword [0x798538]
cdq
and edx, 0xffff
add esp, 0x24
add eax, edx
sar eax, 0x10
cmp eax, ecx
jl case.0x4980d1.19
mov edx, dword [0x786d48]
add ecx, edx
cmp eax, ecx
jg case.0x4980d1.19
mov eax, dword [esi + 0x38]
mov ecx, dword [0x79853c]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp eax, ecx
jl case.0x4980d1.19
mov edx, dword [0x6dc538]
add ecx, edx
cmp eax, ecx
jg case.0x4980d1.19
mov al, byte [0x4dfb04]
test al, al
je 0x49b5be
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x4b]
mov cl, byte [esi + 0x4a]
mov eax, dword [eax*4 + 0x547df0]
add eax, ecx
lea edx, [eax + eax*2]
mov al, byte [edx*4 + 0x517df8]
test al, al
jne case.0x4980d1.19
xor eax, eax
mov al, byte [0x6d6127]
mov ecx, dword [eax*8 + 0x781e5c]
push ecx
call fcn.0046f4f0
add esp, 4
test al, al
jne case.0x4980d1.19
mov eax, dword [esi + 0x38]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esi + 0x34]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cdq
and edx, 0x1f
add eax, edx
xor edx, edx
mov dl, byte [0x6d6127]
sar eax, 5
push eax
mov eax, dword [edx*8 + 0x781e5c]
push eax
call fcn.0046f540
jmp 0x49b632
push eax
push str.Invalid_unit_state__d
push str.UpdateUnit
call fcn.0042b590
add esp, 0xc
xor ecx, ecx
mov cl, byte [esi + 0x18]
shl ecx, 8
cmp byte [ecx + 0x77e27d], 2
jne 0x49b764
mov eax, dword [esi + 8]
test ah, 8
jne 0x49b764
test ah, 1
je 0x49b764
cmp word [esi + 0xc], 0xffff
jne 0x49b679
push str.enemyIndex_out_of_raneg__5_
push str.Unit.cpp
call fcn.0042b590
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x20]
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov edx, dword [ecx + eax*4 + 0x38]
test dh, 1
lea eax, [ecx + eax*4]
je 0x49b764
mov dl, byte [esi + 0x4c]
mov byte [eax + 0x7c], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [esi + 0x4d]
mov byte [ecx + eax*4 + 0x7d], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [esi + 0x4a]
mov byte [ecx + eax*4 + 0x7a], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [esi + 0x4b]
mov byte [ecx + eax*4 + 0x7b], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov edx, dword [esi + 0x34]
mov dword [ecx + eax*4 + 0x64], edx
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov byte [ecx + eax*4 + 0x7f], 0
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov edx, dword [esi + 0x38]
mov dword [ecx + eax*4 + 0x68], edx
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov edx, dword [esi + 0x3c]
mov dword [ecx + eax*4 + 0x6c], edx
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [esi + 0x54]
mov byte [ecx + eax*4 + 0x84], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
mov dl, byte [esi + 0x55]
mov byte [ecx + eax*4 + 0x85], dl
xor eax, eax
mov ax, word [esi + 0xc]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea eax, [ecx + eax*4 + 0x6c]
add dword [eax], 0xfff60000
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x48
ret