Function at 0x55eb90
Capabilities:
Encrypt data using chaskey
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x140
push ebp
push esi
push 0x85a53c
push str.data_surfinfo.dat
mov ebp, ecx
call fcn.00538900
mov esi, eax
push esi
mov dword [esp + 0x7c], esi
call fcn.00536f80
add esp, 0xc
test eax, eax
je 0x55f294
push ebx
push edi
mov cl, byte [eax]
cmp cl, 0x23
je 0x55f281
test cl, cl
je 0x55f281
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xbc]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x168]
push ecx
lea edx, [esp + 0x14c]
push edx
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0x19c]
push edx
push str._s__s__f__f__s__s__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__d__s
push eax
call fcn.008220ad
add esp, 0x98
lea eax, [esp + 0x110]
push eax
mov ecx, ebp
call fcn.0055d220
mov ebx, eax
mov edi, str.RUBBER
lea esi, [esp + 0x90]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ed20
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffff8
jmp 0x55ee14
mov edi, str.HARD
lea esi, [esp + 0x90]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ed53
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffff9
or ecx, 1
jmp 0x55ee14
mov edi, str.ROAD
lea esi, [esp + 0x90]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ed86
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffffa
or ecx, 2
jmp 0x55ee14
mov edi, str.LOOSE
lea esi, [esp + 0x90]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55edb6
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffffb
or ecx, 3
jmp 0x55ee14
mov edi, str.SAND
lea esi, [esp + 0x90]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ede6
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffffc
or ecx, 4
jmp 0x55ee14
mov edi, 0x864d24
lea esi, [esp + 0x90]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ee16
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp + eax*4 + 0x94]
lea eax, [ebp + eax*4 + 0x94]
and ecx, 0xfffffffd
or ecx, 5
mov dword [eax], ecx
fld dword [esp + 0x14]
fmul dword [0x85862c]
call fcn.00821b40
lea edx, [ebx + ebx*2 + 0x24]
mov byte [ebp + edx*4], al
fld dword [esp + 0x5c]
fmul dword [0x858628]
lea eax, [ebx + ebx*2]
lea ebx, [ebp + eax*4]
call fcn.00821b40
mov edi, str.DEFAULT
lea esi, [esp + 0xd0]
mov ecx, 8
xor edx, edx
mov byte [ebx + 0x91], al
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ee6b
mov eax, dword [ebx + 0x94]
and eax, 0xffffffe7
jmp 0x55eeb9
mov edi, str.SANDY
lea esi, [esp + 0xd0]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ee96
mov ecx, dword [ebx + 0x94]
and ecx, 0xfffffff7
or ecx, 0x10
mov dword [ebx + 0x94], ecx
jmp 0x55eebf
mov edi, str.MUDDY
lea esi, [esp + 0xd0]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55eebf
mov eax, dword [ebx + 0x94]
and eax, 0xffffffef
or eax, 8
mov dword [ebx + 0x94], eax
mov edi, 0x859e38
lea esi, [esp + 0xf0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55eee2
and dword [ebx + 0x94], 0xffffff1f
jmp 0x55ef0e
mov edi, str.SPARKS
lea esi, [esp + 0xf0]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ef0e
mov ecx, dword [ebx + 0x94]
and ecx, 0xffffff3f
or ecx, 0x20
mov dword [ebx + 0x94], ecx
mov edi, 0x859e38
lea esi, [esp + 0xb0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ef35
mov eax, dword [ebx + 0x94]
and eax, 0xfffff8ff
jmp 0x55efe2
mov edi, str.SPARKS
lea esi, [esp + 0xb0]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ef69
mov ecx, dword [ebx + 0x94]
and ecx, 0xfffff9ff
or ecx, 0x100
mov dword [ebx + 0x94], ecx
jmp 0x55efe8
mov edi, str.SAND
lea esi, [esp + 0xb0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ef92
mov eax, dword [ebx + 0x94]
and eax, 0xfffffaff
or eax, 0x200
jmp 0x55efe2
mov edi, str.WOOD
lea esi, [esp + 0xb0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55efbb
mov eax, dword [ebx + 0x94]
and eax, 0xfffffbff
or eax, 0x300
jmp 0x55efe2
mov edi, str.DUST
lea esi, [esp + 0xb0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55efe8
mov eax, dword [ebx + 0x94]
and eax, 0xfffffcff
or eax, 0x400
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebx + 0x94]
shl ecx, 0xb
xor ecx, esi
and ecx, 0x800
mov eax, esi
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, eax
mov eax, dword [esp + 0x8c]
shl eax, 0xc
xor eax, ecx
and eax, 0x1000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x24]
shl ecx, 0xd
xor ecx, eax
and ecx, 0x2000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x64]
shl eax, 0xe
xor eax, ecx
and eax, 0x4000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x2c]
shl ecx, 0xf
xor ecx, eax
and ecx, 0x8000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x88]
shl eax, 0x10
xor eax, ecx
and eax, 0x10000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x34]
shl ecx, 0x11
xor ecx, eax
and ecx, 0x20000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x6c]
shl eax, 0x12
xor eax, ecx
and eax, 0x40000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x3c]
shl ecx, 0x13
xor ecx, eax
and ecx, 0x80000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x80]
shl eax, 0x14
xor eax, ecx
and eax, 0x100000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x44]
shl ecx, 0x15
xor ecx, eax
and ecx, 0x200000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x74]
shl eax, 0x16
xor eax, ecx
and eax, 0x400000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x4c]
shl ecx, 0x17
xor ecx, eax
and ecx, 0x1800000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x84]
shl eax, 0x19
xor eax, ecx
and eax, 0x6000000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x54]
shl ecx, 0x1b
xor ecx, eax
and ecx, 0x8000000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x7c]
shl eax, 0x1c
xor eax, ecx
and eax, 0x10000000
xor eax, ecx
mov dword [ebx + 0x94], eax
mov ecx, dword [esp + 0x10]
shl ecx, 0x1d
xor ecx, eax
and ecx, 0x20000000
xor ecx, eax
mov dword [ebx + 0x94], ecx
mov eax, dword [esp + 0x18]
shl eax, 0x1e
xor eax, ecx
and eax, 0x40000000
xor eax, ecx
mov ecx, dword [ebx + 0x98]
mov dword [ebx + 0x94], eax
mov edx, dword [esp + 0x20]
and eax, 0x7fffffff
shl edx, 0x1f
or eax, edx
mov dword [ebx + 0x94], eax
mov eax, dword [ebx + 0x98]
xor eax, dword [esp + 0x28]
and eax, 1
xor ecx, eax
mov dword [ebx + 0x98], ecx
mov eax, dword [esp + 0x30]
add eax, eax
xor eax, ecx
and eax, 2
xor eax, ecx
mov dword [ebx + 0x98], eax
mov ecx, dword [esp + 0x38]
shl ecx, 2
xor ecx, eax
and ecx, 4
xor ecx, eax
mov dword [ebx + 0x98], ecx
mov edx, dword [esp + 0x40]
shl edx, 3
xor edx, ecx
and edx, 8
xor edx, ecx
mov dword [ebx + 0x98], edx
mov eax, dword [esp + 0x48]
shl eax, 4
xor eax, edx
and eax, 0x10
xor eax, edx
mov dword [ebx + 0x98], eax
mov ecx, dword [esp + 0x50]
shl ecx, 5
xor ecx, eax
and ecx, 0x20
xor ecx, eax
mov dword [ebx + 0x98], ecx
mov eax, dword [esp + 0x58]
shl eax, 6
xor eax, ecx
and eax, 0x40
xor eax, ecx
mov dword [ebx + 0x98], eax
mov ecx, dword [esp + 0x60]
shl ecx, 7
xor ecx, eax
mov esi, dword [esp + 0x78]
and ecx, 0x80
xor ecx, eax
mov dword [ebx + 0x98], ecx
mov eax, dword [esp + 0x68]
shl eax, 8
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [ebx + 0x98], eax
mov ecx, dword [esp + 0x70]
shl ecx, 9
xor ecx, eax
and ecx, 0x200
xor ecx, eax
mov dword [ebx + 0x98], ecx
push esi
call fcn.00536f80
add esp, 4
test eax, eax
jne 0x55ebc2
pop edi
pop ebx
push esi
call fcn.005389d0
add esp, 4
pop esi
pop ebp
add esp, 0x140
ret