Function at 0x48f7b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2b8
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
lea edi, [esi + 0x104]
mov dword [esi + 0x100], ebx
mov eax, 1
mov dword [esp + 0x68], ebx
mov dword [edi], ebx
mov dword [esi + 0x108], ebx
mov dword [esi + 0x10c], 0x24c2
mov dword [esi + 0x110], 0x24c2
mov dword [esi + 0x114], ebx
mov dword [esi + 0x64], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
mov dword [esi + 0x68], ebx
mov dword [esi + 0x118], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x48], ebx
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x120], ebx
mov byte [esi + 0x139], bl
mov dword [esp + 0x78], ebx
mov byte [esi + 0x13a], bl
mov dword [esp + 0x80], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], ebx
mov dword [esi + 0x74], ebx
call dword [eax + 0x30]
mov ebp, eax
cmp ebp, ebx
jne 0x48f8a1
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b8
ret
mov ecx, esi
call fcn.0040c800
mov ecx, dword [esi + 0x64]
lea eax, [esi + 0x100]
push eax
mov dword [esi + 0x124], ecx
push str.cPurchaseCost
push str.Characteristics_Integers
mov ecx, ebp
call fcn.004169a0
push edi
push str.cNameID
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea eax, [esi + 0x108]
mov ecx, ebp
push eax
push str.cHelpID
push str.Characteristics_Integers
call fcn.00416920
mov edx, dword [edi]
push edx
call fcn.0040c760
add esp, 4
test al, al
je 0x48fbb2
mov eax, dword [esi + 0x7c]
cmp eax, ebx
je 0x48f914
mov dword [edi], eax
jmp 0x48fba6
mov edi, dword [esi + 0xa4]
lea eax, [esp + 0x17]
push ebx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.0046fe80
mov ecx, dword [esp + 0x18]
xor eax, eax
push ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x14]
not ecx
dec ecx
add ecx, eax
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004067a0
mov edi, dword [0x6217a8]
lea edx, [esp + 0x20]
lea eax, [esp + 0x18]
push edx
push eax
mov ecx, 0x6217a8
call fcn.004d0f70
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
cmp ecx, edi
mov ecx, dword [esp + 0x28]
sete byte [esp + 0x16]
sub ecx, eax
push ecx
push eax
lea ecx, [esp + 0x30]
call fcn.0041d810
cmp byte [esp + 0x16], bl
jne 0x48fa9c
mov edi, dword [esi + 0xa4]
lea edx, [esp + 0x17]
push ebx
push edx
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.0046fe80
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x14]
not ecx
dec ecx
add ecx, eax
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004067a0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x18]
push ecx
push edx
mov ecx, 0x6217a8
call fcn.0040fcf0
mov eax, dword [eax]
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x6217a8
mov dword [esp + 0x14], eax
call fcn.005d8060
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
cmp ecx, edx
je 0x48fa23
lea eax, [ecx + 0x10]
lea edx, [esp + 0x20]
push eax
push edx
call fcn.00406410
add esp, 8
test al, al
je 0x48fa6c
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0xc0]
mov dword [esp + 0x24], ebx
call fcn.0040f6a0
push eax
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
push edx
call fcn.005d82d0
lea eax, [esp + 0x38]
mov ecx, 0x6217a8
push eax
call fcn.005c5400
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xb8]
call fcn.00406010
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x104], eax
mov eax, dword [esp + 0x20]
sub ecx, eax
push ecx
push eax
lea ecx, [esp + 0x30]
call fcn.0041d810
mov edx, dword [esi + 0x104]
mov dword [esi + 0x7c], edx
jmp 0x48fba6
call fcn.0040c730
mov edi, dword [esi + 0xa4]
mov dword [esi + 0x104], eax
mov dword [esi + 0x7c], eax
lea eax, [esp + 0x17]
push ebx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.0046fe80
mov ecx, dword [esp + 0x30]
xor eax, eax
push ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x20]
not ecx
dec ecx
add ecx, eax
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004067a0
lea edx, [esp + 0x20]
lea eax, [esp + 0x30]
push edx
push eax
mov ecx, 0x6217a8
call fcn.0040fcf0
mov ecx, dword [eax]
lea edx, [esp + 0xb4]
mov dword [esp + 0x10], ecx
push edx
mov ecx, 0x6217a8
call fcn.005d8060
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
cmp ecx, edx
je 0x48fb36
lea eax, [ecx + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00406410
add esp, 8
test al, al
je 0x48fb84
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0xbc]
call fcn.00407bf0
lea edx, [esp + 0xb8]
lea eax, [esp + 0x10]
push edx
push ecx
mov ecx, esp
push eax
mov dword [esp + 0xd0], ebx
call fcn.005d82d0
lea ecx, [esp + 0x20]
push ecx
mov ecx, 0x6217a8
call fcn.005c5400
mov edx, dword [eax]
lea ecx, [esp + 0xb8]
mov dword [esp + 0x10], edx
call fcn.00406010
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x104]
mov dword [ecx + 0x1c], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x28]
sub edx, eax
push edx
push eax
call fcn.0041d810
mov eax, dword [esi + 0x104]
mov dword [esi + 0x108], eax
lea eax, [esi + 0x10c]
mov ecx, ebp
push eax
push str.cHabitat
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x110]
mov ecx, ebp
push eax
push str.cLocation
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x114]
mov ecx, ebp
push eax
push str.cEra
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x68]
push ecx
push str.walkable
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x64]
mov ecx, ebp
push edx
push str.walkableByTall
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0x6c]
mov ecx, ebp
push eax
push str.cRubbleable
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x88]
push ecx
push str.cSelectable
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x90]
mov ecx, ebp
push edx
push str.cDeletable
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0x8c]
mov ecx, ebp
push eax
push str.cNeedsConfirm
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x7c]
push ecx
push str.cAutoRotate
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x50]
mov ecx, ebp
push edx
push str.cFoliage
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0xa4]
mov ecx, ebp
push eax
push str.cRock
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x58]
push ecx
push str.cFood
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x84]
push edx
push str.cLand
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea eax, [esp + 0x60]
mov ecx, ebp
push eax
push str.cSwims
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x94]
push ecx
push str.cUnderwater
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x40]
mov ecx, ebp
push edx
push str.cSurface
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0x74]
mov ecx, ebp
push eax
push str.cSubmerge
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x70]
push ecx
push str.cOnlySwims
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea eax, [esi + 0x64]
mov ecx, ebp
push eax
push str.cHeight
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x68]
mov ecx, ebp
push eax
push str.cDepth
push str.Characteristics_Integers
call fcn.00416920
lea edx, [esp + 0x48]
mov ecx, ebp
push edx
push str.cGawkOnlyFromFront
push str.Characteristics_Integers
call fcn.00416920
lea edi, [esi + 0xb4]
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x98]
mov edx, dword [eax + 4]
push ecx
push str.cFootprintX
push str.Characteristics_Integers
mov eax, dword [eax + 8]
mov ecx, ebp
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
call fcn.00416920
lea edx, [esp + 0x9c]
mov ecx, ebp
push edx
push str.cFootprintY
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0xa0]
mov ecx, ebp
push eax
push str.cFootprintZ
push str.Characteristics_Integers
call fcn.00416920
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xa8]
mov dword [edi + 8], edx
push ecx
push str.cPlacementFootprintX
push str.Characteristics_Integers
mov ecx, ebp
mov dword [esp + 0xb4], eax
mov dword [esp + 0xbc], edx
call fcn.00416920
lea edx, [esp + 0xac]
mov ecx, ebp
push edx
push str.cPlacementFootprintY
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0xb0]
mov ecx, ebp
push eax
push str.cPlacementFootprintZ
push str.Characteristics_Integers
call fcn.00416920
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
lea ecx, [esi + 0xc0]
push 0x6102dc
push str.EstheticBonus
mov dword [ecx], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 4], eax
lea eax, [esp + 0x3c]
push eax
mov dword [ecx + 8], edx
mov ecx, ebp
call fcn.00416a60
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
sub eax, edx
test eax, 0xfffffffc
je 0x48ff80
sub esp, 0xc
lea edx, [esp + 0x23]
mov ecx, esp
sar eax, 2
mov dword [esp + 0x1c], ecx
mov edi, eax
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
push ebx
add ecx, 8
push edx
mov dword [esp + 0x30], edi
call fcn.0046fe80
cmp edi, ebx
je 0x48ff24
lea eax, [edi*4]
push eax
call fcn.004064d0
add esp, 4
mov edi, eax
jmp 0x48ff26
xor edi, edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dword [eax], edi
mov dword [eax + 4], edi
add eax, 8
lea edx, [edi + ecx*4]
mov dword [eax], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
sub eax, ecx
mov dword [esp + 0x24], ecx
sar eax, 2
shl eax, 2
push eax
push ecx
push edi
call fcn.00403770
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
sub eax, edx
sar eax, 2
add esp, 0xc
lea eax, [edi + eax*4]
mov dword [ecx + 4], eax
lea ecx, [esi + 0x154]
call fcn.00458b30
push ebx
lea eax, [esp + 0x30]
push ebx
push eax
lea edx, [esp + 0xd4]
push str.cInfoImageName
push str.Characteristics_Strings
mov ecx, esi
mov dword [esp + 0x40], edx
call fcn.0040e600
test al, al
je 0x490025
mov edx, dword [esp + 0x2c]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [esi + 0x148]
mov eax, edx
not ecx
dec ecx
add ecx, edx
cmp edx, ecx
je 0x48ffe3
cmp edi, dword [esi + 0x14c]
lea edx, [esi + 0x148]
je 0x48ffdf
mov dl, byte [eax]
inc eax
mov byte [edi], dl
inc edi
cmp eax, ecx
jne 0x48ffc5
jmp 0x48ffe3
cmp eax, ecx
jne 0x490017
mov eax, dword [esi + 0x14c]
cmp edi, eax
mov dword [esp + 0x18], eax
je 0x490025
mov ecx, eax
sub ecx, eax
inc ecx
push ecx
push eax
push edi
call fcn.00403770
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x14c]
sub edi, ecx
add esp, 0xc
add eax, edi
mov dword [esi + 0x14c], eax
jmp 0x490025
mov edi, dword [esp + 0x30]
push edi
push ecx
push eax
mov ecx, edx
call fcn.00406ae0
lea eax, [esi + 0x118]
mov ecx, ebp
push eax
push str.cMaxFoodUnits
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x11c]
mov ecx, ebp
push eax
push str.cStink
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x120]
mov ecx, ebp
push eax
push str.cEstheticWeight
push str.Characteristics_Integers
call fcn.00416920
lea edx, [esp + 0x78]
mov ecx, ebp
push edx
push str.cUsesTreeRubble
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0x80]
mov ecx, ebp
push eax
push str.cForcesSceneryRubble
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x44]
push ecx
push str.cDeadOnLand
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea edx, [esp + 0x4c]
mov ecx, ebp
push edx
push str.cDeadOnFlatWater
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esp + 0x54]
mov ecx, ebp
push eax
push str.cDeadUnderwater
push str.Characteristics_Integers
call fcn.00416920
lea ecx, [esp + 0x5c]
push ecx
push str.cBlocksLOS
push str.Characteristics_Integers
mov ecx, ebp
call fcn.00416920
lea eax, [esi + 0x124]
mov ecx, ebp
push eax
push str.cDeadStateHeight
push str.Characteristics_Integers
call fcn.00416920
lea eax, [esi + 0x74]
mov ecx, ebp
push eax
push str.cAvoidEdges
push str.Characteristics_Integers
call fcn.00416920
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x49013f
mov edx, dword [esp + 0x3c]
sub edx, eax
sar edx, 2
shl edx, 2
push edx
push eax
call fcn.00406670
add esp, 8
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edi, 1
cmp edx, edi
sete al
mov byte [esi + 0x56], al
mov eax, dword [esp + 0x6c]
cmp ecx, edi
sete cl
cmp eax, edi
mov byte [esi + 0x57], cl
mov ecx, dword [esp + 0x90]
sete dl
mov byte [esi + 0x59], dl
mov edx, dword [esp + 0x88]
cmp edx, edi
sete al
mov byte [esi + 0x128], al
mov eax, dword [esp + 0x8c]
cmp ecx, edi
sete cl
cmp eax, edi
mov byte [esi + 0x129], cl
mov ecx, dword [esp + 0x7c]
sete dl
mov byte [esi + 0x134], dl
mov edx, dword [esp + 0x48]
cmp edx, edi
sete al
mov byte [esi + 0x135], al
mov eax, dword [esp + 0x50]
cmp ecx, edi
sete cl
cmp eax, edi
mov byte [esi + 0x12d], cl
mov ecx, dword [esp + 0x58]
sete dl
mov byte [esi + 0x12a], dl
mov edx, dword [esp + 0xa4]
cmp edx, edi
mov edx, dword [esp + 0x60]
sete al
mov byte [esi + 0x12b], al
mov eax, dword [esp + 0x84]
cmp ecx, edi
sete cl
cmp eax, edi
mov byte [esi + 0x12c], cl
mov ecx, dword [esp + 0x94]
sete al
cmp edx, edi
mov edx, dword [esp + 0x40]
mov byte [esp + 0x16], al
mov byte [esi + 0x12e], al
sete al
cmp ecx, edi
mov byte [esi + 0x12f], al
sete cl
cmp edx, edi
mov byte [esi + 0x130], cl
sete dl
mov byte [esi + 0x131], dl
mov edx, dword [esp + 0x74]
cmp edx, edi
sete dl
mov byte [esi + 0x132], dl
mov edx, dword [esp + 0x70]
cmp edx, edi
sete dl
cmp al, bl
mov byte [esi + 0x133], dl
je 0x490265
cmp cl, bl
jne 0x490265
cmp byte [esp + 0x16], bl
jne 0x490265
mov byte [esi + 0x133], 1
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x80]
cmp edx, edi
sete al
mov byte [esi + 0x139], al
mov eax, dword [esp + 0x44]
cmp ecx, edi
sete cl
cmp eax, edi
mov byte [esi + 0x13a], cl
mov ecx, dword [esp + 0x54]
sete dl
mov byte [esi + 0x136], dl
mov edx, dword [esp + 0x4c]
cmp edx, edi
sete al
mov byte [esi + 0x137], al
mov eax, dword [esp + 0x5c]
cmp ecx, edi
sete cl
cmp eax, ebx
mov byte [esi + 0x138], cl
setne dl
mov byte [esi + 0x13b], dl
mov ecx, dword [esi + 0x140]
mov edx, dword [esi + 0x13c]
mov eax, ecx
sub eax, ecx
sar eax, 2
cmp eax, ebx
jle 0x4902f2
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
add ecx, 4
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
add edx, 4
dec eax
mov dword [esp + 0x2c], eax
jne 0x4902dd
mov ecx, esi
mov dword [esi + 0x140], edx
call fcn.0040c750
test al, al
jne 0x490474
push str.cUsedThought
lea ecx, [esp + 0x38]
push str.Characteristics_Integers
push ecx
mov ecx, ebp
call fcn.00416a60
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, ecx
cmp ecx, edx
mov dword [esp + 0x10], eax
je 0x490431
mov ebp, dword [esi + 0x140]
mov edx, dword [esi + 0x144]
cmp ebp, edx
je 0x49035c
cmp ebp, ebx
je 0x490350
mov edx, dword [eax]
mov dword [ebp], edx
mov ecx, dword [esp + 0x34]
add dword [esi + 0x140], 4
jmp 0x49041e
mov ecx, dword [esi + 0x13c]
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x18], edi
sar eax, 2
cmp eax, edi
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x18]
jb 0x49037d
lea ecx, [esp + 0x1c]
mov ecx, dword [ecx]
add ecx, eax
mov dword [esp + 0x18], ecx
je 0x49039b
lea eax, [ecx*4]
push eax
call fcn.004064d0
add esp, 4
mov edi, eax
jmp 0x49039d
xor edi, edi
mov eax, dword [esi + 0x13c]
push edi
push ebp
push eax
call fcn.004187d0
add esp, 0xc
cmp eax, ebx
je 0x4903ba
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 0x140]
add eax, 4
push ebx
push edx
push eax
push ecx
push ebp
call fcn.00456170
mov ebp, eax
mov eax, dword [esi + 0x13c]
add esp, 0x14
cmp eax, ebx
je 0x4903f8
mov ecx, dword [esi + 0x144]
sub ecx, eax
sar ecx, 2
shl ecx, 2
push ecx
push eax
call fcn.00406670
add esp, 8
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], ebp
lea eax, [edi + edx*4]
mov edi, 1
mov dword [esi + 0x144], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
add eax, 4
cmp eax, edx
mov dword [esp + 0x10], eax
jne 0x490333
cmp ecx, ebx
je 0x490474
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x49045e
push ecx
call fcn.005f0905
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b8
ret
dec eax
shr eax, 3
mov edx, dword [eax*4 + 0x61f1a0]
lea eax, [eax*4 + 0x61f1a0]
mov dword [ecx], edx
mov dword [eax], ecx
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x2b8
ret