joyce8/EMBER2024-capa huggingface dataset:
Function at 0x405860
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x48
push ebx
push ebp
mov ebx, ecx
xor ebp, ebp
cmp eax, 1
push esi
push edi
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x88], ebp
jne 0x4059c5
mov edi, dword [esp + 0x5c]
cmp edi, ebp
mov eax, dword [esp + 0x68]
mov dword [ebx + 8], eax
jne 0x4058a2
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
add esp, 0x48
ret 0x10
mov eax, dword [ebx + 4]
cmp eax, ebp
je 0x4058b5
push eax
call fcn.0062fced
add esp, 4
mov dword [ebx + 4], ebp
push 0x10000
push ebp
push edi
call dword [sym.imp.winmm.dll_mmioOpenA]
cmp eax, ebp
mov dword [ebx + 0x10], eax
jne 0x405985
push str.WAVE
push edi
push ebp
mov ebp, dword [sym.imp.kernel32.dll_FindResourceA]
call ebp
mov esi, eax
test esi, esi
jne 0x4058f5
push 0x6495c4
push edi
push eax
call ebp
mov esi, eax
test esi, esi
je 0x4059dd
push esi
push 0
call dword [sym.imp.kernel32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x4059dd
push esi
push 0
call dword [sym.imp.kernel32.dll_SizeofResource]
mov ebp, eax
test ebp, ebp
je 0x4059dd
push edi
call dword [sym.imp.kernel32.dll_LockResource_1]
mov esi, eax
test esi, esi
je 0x4059dd
push ebp
call fcn.0062fffc
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov dword [ebx + 0x98], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add esp, 4
xor eax, eax
mov ecx, 0x12
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x98]
push 0x10000
lea ecx, [esp + 0x14]
push ecx
push 0
mov dword [esp + 0x20], 0x204d454d
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], eax
call dword [sym.imp.winmm.dll_mmioOpenA]
mov dword [ebx + 0x10], eax
mov ecx, ebx
call fcn.004044c0
mov esi, eax
test esi, esi
push 0
jge 0x4059aa
mov edx, dword [ebx + 0x10]
push edx
call dword [sym.imp.winmm.dll_mmioClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0x10
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
test eax, eax
jl 0x405a1c
mov ecx, dword [ebx + 0x18]
pop edi
pop esi
pop ebp
mov dword [ebx + 0xc], ecx
pop ebx
add esp, 0x48
ret 0x10
mov edx, dword [esp + 0x5c]
push 0x11002
push ebp
push edx
call dword [sym.imp.winmm.dll_mmioOpenA]
cmp eax, ebp
mov dword [ebx + 0x10], eax
jne 0x4059ec
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0x10
mov eax, dword [esp + 0x60]
push eax
mov ecx, ebx
call fcn.004049a0
mov esi, eax
cmp esi, ebp
push ebp
jge 0x405a15
mov ecx, dword [ebx + 0x10]
push ecx
call dword [sym.imp.winmm.dll_mmioClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0x10
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0x10
Function at 0x40b820
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 4]
test eax, eax
xorps xmm0, xmm0
mov dword [ecx + 0x80], eax
je 0x40b91d
movss xmm1, dword [0x649714]
push esi
movsx esi, word [eax + 0x10]
movss dword [ecx + 0xc], xmm0
add esi, 0xffffffff
mov dword [ecx + 4], esi
lea edx, [eax + 0x14]
mov dword [ecx], edx
mov dword [ecx + 8], edx
movzx esi, byte [edx + 1]
cvtsi2ss xmm2, esi
mov dword [ecx + 0x18], 1
mulss xmm2, xmm1
movss dword [ecx + 0x10], xmm2
movss xmm2, dword [0x649444]
movss dword [ecx + 0x14], xmm2
movzx esi, byte [eax + 0x12]
mov dword [ecx + 0x20], esi
movzx edx, byte [edx]
mov dword [ecx + 0x24], edx
movsx edx, word [eax + 0x10]
movsx esi, word [eax + edx*2 + 0x12]
lea eax, [eax + edx*2 + 0x12]
lea edx, [eax + 4]
mov dword [ecx + 0x28], edx
mov dword [ecx + 0x30], edx
add esi, 0xffffffff
mov dword [ecx + 0x2c], esi
movss dword [ecx + 0x34], xmm0
movzx esi, byte [edx + 1]
cvtsi2ss xmm3, esi
mov dword [ecx + 0x40], 1
movss dword [ecx + 0x3c], xmm2
mulss xmm3, xmm1
movss dword [ecx + 0x38], xmm3
movzx esi, byte [eax + 2]
mov dword [ecx + 0x48], esi
movzx edx, byte [edx]
mov dword [ecx + 0x4c], edx
movsx edx, word [eax]
movsx esi, word [eax + edx*2 + 2]
lea edx, [eax + edx*2 + 2]
lea eax, [edx + 4]
add esi, 0xffffffff
mov dword [ecx + 0x54], esi
mov dword [ecx + 0x50], eax
mov dword [ecx + 0x58], eax
movss dword [ecx + 0x5c], xmm0
movzx esi, byte [eax + 1]
cvtsi2ss xmm3, esi
mulss xmm3, xmm1
movss dword [ecx + 0x60], xmm3
mov dword [ecx + 0x68], 1
movss dword [ecx + 0x64], xmm2
movzx edx, byte [edx + 2]
mov dword [ecx + 0x70], edx
movzx eax, byte [eax]
mov dword [ecx + 0x74], eax
pop esi
movss xmm1, dword [esp + 8]
movss dword [ecx + 0x78], xmm1
movss dword [ecx + 0x7c], xmm0
ret 8
Function at 0x413b80
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov eax, dword [0x696310]
cmp eax, 0x270
jl 0x413c60
cmp eax, 0x271
jne 0x413ba1
mov ecx, 0x1105
call fcn.00413a70
xor ecx, ecx
jmp 0x413bb0
mov eax, dword [ecx*4 + 0x7060dc]
xor eax, dword [ecx*4 + 0x7060d8]
add ecx, 1
and eax, 0x7fffffff
xor eax, dword [ecx*4 + 0x7060d4]
mov edx, eax
shr eax, 1
and edx, 1
xor eax, dword [edx*4 + 0x696314]
xor eax, dword [ecx*4 + 0x706708]
cmp ecx, 0xe3
mov dword [ecx*4 + 0x7060d4], eax
jl 0x413bb0
cmp ecx, 0x26f
jge 0x413c31
lea ecx, [ecx*4 + 0x7060d8]
mov eax, dword [ecx]
xor eax, dword [ecx + 4]
add ecx, 4
and eax, 0x7fffffff
xor eax, dword [ecx - 4]
mov edx, eax
and edx, 1
mov edx, dword [edx*4 + 0x696314]
xor edx, dword [ecx - 0x390]
shr eax, 1
xor edx, eax
cmp ecx, 0x706a94
mov dword [ecx - 4], edx
jl 0x413c00
mov ecx, dword [0x706a94]
mov eax, dword [0x7060d8]
xor eax, ecx
and eax, 0x7fffffff
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
xor eax, dword [ecx*4 + 0x696314]
xor eax, dword [0x706708]
mov dword [0x706a94], eax
xor eax, eax
mov ecx, dword [eax*4 + 0x7060d8]
add eax, 1
mov edx, ecx
shr edx, 0xb
xor ecx, edx
mov dword [0x696310], eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov edx, ecx
and edx, 0xffffdf8c
shl edx, 0xf
xor ecx, edx
mov eax, ecx
shr eax, 0x12
xor eax, ecx
ret
Function at 0x437cc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x74
mov ecx, dword [0x705898]
mov edx, dword [ecx + 0x3a4]
test edx, edx
mov ecx, dword [ecx + 0x3a8]
xorps xmm0, xmm0
movss xmm2, dword [0x64ea54]
movss xmm1, dword [0x649444]
mov dword [esp], edx
fild dword [esp]
movss dword [esp + 4], xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 0xc], xmm2
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm0
jge 0x437d1c
fadd dword [0x649440]
test ecx, ecx
fst dword [esp + 0x20]
mov dword [esp], ecx
fstp dword [esp + 0x3c]
fild dword [esp]
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x28], xmm2
movss dword [esp + 0x2c], xmm1
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x38], xmm0
jge 0x437d52
fadd dword [0x649440]
cmp eax, 6
fst dword [esp + 0x40]
fstp dword [esp + 0x5c]
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x60], xmm2
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x70], xmm1
jle 0x437d9a
mov eax, 6
movzx edx, byte [esp + 0x78]
mov ecx, 6
sub ecx, eax
mov dword [esp], ecx
push esi
fild dword [esp + 4]
mov dword [esp + 4], edx
fmul dword [0x64ea50]
fimul dword [esp + 4]
call fcn.006311dc
mov esi, dword [0x7060d0]
movzx eax, al
push 2
shl eax, 0x18
or eax, 0x808080
push 2
push 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x10c]
mov ecx, dword [esi]
push 0
push 3
push 0
push esi
call dword [ecx + 0x10c]
mov edx, dword [esi]
push 5
push 1
push 0
push esi
call dword [edx + 0x10c]
mov eax, dword [esi]
push 0
push 6
push 0
push esi
call dword [eax + 0x10c]
mov ecx, dword [esi]
push 3
push 4
push 0
push esi
call dword [ecx + 0x10c]
mov edx, dword [esi]
push 1
push 7
push esi
call dword [edx + 0xe4]
mov eax, dword [esi]
push 8
push 0x17
push esi
call dword [eax + 0xe4]
mov ecx, dword [esi]
push 0
push 0xe
push esi
call dword [ecx + 0xe4]
mov ecx, dword [0x705898]
push 8
lea edx, [esp + 0xc]
push edx
call fcn.00409da0
call fcn.00496d40
pop esi
add esp, 0x74
ret
Function at 0x45ae10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x70
push esi
mov esi, dword [esp + 0x78]
mov eax, esi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 8]
push edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x40], ecx
mov eax, edi
mov ecx, dword [eax]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x3c]
push 2
push ecx
mov dword [esp + 0x60], edx
call fcn.00457f70
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00457cd0
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
call fcn.00457cd0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add esp, 0x24
cmp eax, ecx
jle 0x45aea4
mov edi, eax
mov edx, ecx
mov dword [esp + 0x10], edi
jmp 0x45aeac
mov edx, eax
mov dword [esp + 0x10], ecx
mov edi, ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jle 0x45aec4
mov esi, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
jmp 0x45aed0
mov dword [esp + 8], ecx
mov esi, ecx
mov dword [esp + 0xc], eax
mov ecx, eax
cmp edi, 0x32
jge 0x45aee2
cmp esi, 0x32
jge 0x45aee2
test edx, edx
jl 0x45aee2
test ecx, ecx
jge 0x45aeea
pop edi
xor eax, eax
pop esi
add esp, 0x70
ret
cmp edx, edi
push ebx
push ebp
mov ebp, edx
jg 0x45af60
cmp ecx, esi
mov ebx, ecx
jg 0x45af59
push ebx
push ebp
call fcn.0045b180
mov edi, eax
add esp, 8
test edi, edi
je 0x45af4a
mov esi, dword [edi]
test esi, esi
je 0x45af46
mov edi, edi
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x68]
push edx
push eax
push ecx
push esi
call fcn.004d8b40
add esp, 0x18
test eax, eax
jne 0x45af6a
mov esi, dword [edi + 4]
add edi, 4
test esi, esi
jne 0x45af10
mov esi, dword [esp + 0x10]
add ebx, 1
cmp ebx, esi
jle 0x45aef8
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add ebp, 1
cmp ebp, edi
jle 0x45aef2
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x70
ret
pop ebp
pop ebx
pop edi
mov eax, esi
pop esi
add esp, 0x70
ret
Function at 0x479100
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x90
push ebx
mov ebx, 8
push ebp
mov ebp, dword [esp + 0x9c]
push esi
mov esi, eax
lea eax, [ecx - 0x10]
add ecx, 0xfffffff8
lea edx, [esi - 0x10]
push edi
xor edi, edi
add esi, 0xfffffff8
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov edi, edi
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xa8]
test ecx, eax
je 0x47924e
cmp edi, ebx
jne 0x479209
mov dword [esp + 0xb4], 0xffc2
mov dword [ebp + 0x4e0], 0x702007f
mov dword [ebp + 0x4e4], 0x20
jmp 0x479214
mov dword [esp + 0xb4], 0xffc3
mov edx, dword [esp + 0xb8]
push edi
push edx
mov eax, edi
shl eax, 4
mov ecx, dword [esp + eax + 0x24]
mov edx, dword [esp + eax + 0x20]
push ecx
mov ecx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + eax + 0x24]
add edx, dword [esp + 0xc0]
mov eax, dword [esp + eax + 0x20]
add eax, dword [esp + 0xbc]
push ecx
push edx
push eax
jmp 0x47926d
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
push edi
push ecx
push 0
push 0
push edx
push 0x1c0
push 0x280
lea esi, [edi + edi*8]
shl esi, 4
add esi, ebp
call fcn.00478dd0
add edi, 1
add esp, 0x1c
cmp edi, 9
jl 0x4791d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret
Function at 0x4b8cb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x705898]
sub esp, 0x9c
push esi
mov esi, dword [esp + 0xa4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push edi
mov edi, dword [eax + 0xf8]
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
push eax
push ecx
call fcn.0054df70
mov ecx, eax
call fcn.0054ded0
test eax, eax
je 0x4b8e57
mov edx, dword [eax]
lea ecx, [esp + 0x84]
push ecx
push 0
push eax
call dword [edx + 0x44]
test eax, eax
jl 0x4b8e57
mov edx, dword [esi + 0x2c]
fild dword [esi + 0x2c]
test edx, edx
movss xmm1, dword [esi + 0x20]
movss xmm2, dword [esi + 0x30]
movss xmm3, dword [esi + 0x24]
movss xmm4, dword [esi + 0x34]
jge 0x4b8d29
fadd dword [0x649440]
movzx ecx, byte [esi + 0x19]
fmul dword [0x64fbec]
movzx edx, byte [esi + 0x1a]
fsubr dword [0x649444]
xor eax, eax
mov ah, byte [esi + 0x1b]
fst dword [esp + 8]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x40], xmm3
fstp dword [esp + 0x14]
push edi
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x60], xmm4
movss dword [esp + 0x78], xmm2
mov al, byte [esi + 0x18]
movss dword [esp + 0x7c], xmm4
shl eax, 8
or eax, ecx
movzx ecx, word [esi + 0x28]
shl eax, 8
or eax, edx
movzx edx, word [esi + 0x38]
cvtsi2ss xmm6, edx
movzx edx, word [esi + 0x3a]
cvtsi2ss xmm5, ecx
movzx ecx, word [esi + 0x2a]
cvtsi2ss xmm7, ecx
cvtsi2ss xmm0, edx
movss dword [esp + 0x84], xmm0
movss xmm0, dword [0x649444]
movss xmm3, dword [esp + 0x84]
movss dword [esp + 0x14], xmm7
mov dword [esp + 0x20], eax
movss dword [esp + 0x30], xmm7
movss xmm7, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x74], eax
mov eax, dword [edi]
movss dword [esp + 0x10], xmm5
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x2c], xmm6
movss dword [esp + 0x34], xmm7
movss dword [esp + 0x38], xmm0
movss dword [esp + 0x48], xmm5
movss dword [esp + 0x4c], xmm3
movss dword [esp + 0x50], xmm7
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x64], xmm6
movss dword [esp + 0x68], xmm3
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x70], xmm0
call dword [eax + 0xa4]
mov ecx, dword [edi]
push 0x1c
lea edx, [esp + 0x10]
push edx
push 2
push 5
push edi
call dword [ecx + 0x14c]
mov eax, dword [edi]
push edi
call dword [eax + 0xa8]
pop edi
pop esi
add esp, 0x9c
ret
Function at 0x4c5f30
Capabilities:
Create thread

Disassembly:
push ecx
call fcn.004c58a0
test byte [0x8c0870], 0x10
je 0x4c5f49
call fcn.004a2ec0
call fcn.004a2fa0
mov ecx, dword [0x705898]
call fcn.00407e60
mov ecx, dword [0x705898]
call fcn.00407e60
push 0
call fcn.00543bd0
push 2
call fcn.00543bf0
add esp, 8
call fcn.004b1c80
push 0x8ba350
call dword [sym.imp.kernel32.dll_InitializeCriticalSection]
push 0x8ba350
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
push 0x8ba350
mov dword [0x8bb754], 1
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
cmp dword [0x8bb750], 0
mov dword [0x8bb758], 0
jne 0x4c5fcf
lea eax, [esp]
push eax
push 0
push 0
push 0x4c5da0
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateThread]
mov dword [0x8bb750], eax
pop ecx
ret
Function at 0x4c75c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
cmp ecx, 0xe
mov edx, dword [0x705898]
movss xmm1, dword [edx + 0x3b4]
mulss xmm1, dword [0x64fb7c]
movss xmm2, dword [eax + 4]
push esi
cvttss2si esi, xmm1
cvtsi2ss xmm3, esi
movss dword [esp + 0x14], xmm3
movss xmm1, dword [edx + 0x3b8]
mulss xmm1, dword [0x6496a0]
cvttss2si edx, xmm1
movss xmm1, dword [eax]
subss xmm1, xmm3
cvtsi2ss xmm4, edx
subss xmm2, xmm4
movss dword [esp + 0x24], xmm1
fld dword [esp + 0x24]
movss dword [esp + 0x28], xmm2
fld dword [esp + 0x28]
fpatan
xorps xmm0, xmm0
movss xmm6, dword [esp + 0x54]
movss xmm5, dword [eax + 0xc]
movss dword [esp + 4], xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 0x10], xmm0
mulss xmm5, xmm6
subss xmm0, xmm5
mulss xmm1, xmm6
mulss xmm2, xmm6
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x64ea54]
subss xmm3, xmm1
subss xmm4, xmm2
movss dword [esp + 0x14], xmm3
movss dword [esp + 0x18], xmm4
movss dword [esp + 0x1c], xmm0
fstp dword [esp + 0xc]
jge 0x4c779f
fld dword [esp + 0x4c]
mov eax, ecx
fmul dword [0x64f7ac]
shl eax, 4
push ebx
add eax, ecx
lea esi, [eax + eax*2]
fstp dword [esp + 0x50]
mov eax, dword [esp + 0x54]
push 0x80
push eax
mov eax, dword [esp + 0x48]
push eax
push eax
lea ecx, [esp + 0x28]
shl esi, 4
push ecx
add esi, 0x8bb840
push esi
call fcn.004991a0
movzx edx, byte [esp + 0x64]
mov dword [esp + 0x70], edx
push 0x80
fild dword [esp + 0x74]
fmul dword [esp + 0x6c]
call fcn.006311dc
movzx ecx, byte [esp + 0x64]
movzx ax, al
mov dword [esp + 0x74], ecx
fild dword [esp + 0x74]
fmul dword [esp + 0x6c]
push eax
call fcn.006311dc
movzx dx, al
movzx eax, byte [esp + 0x64]
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
push edx
fmul dword [esp + 0x74]
call fcn.006311dc
movzx cx, al
push ecx
push esi
call fcn.00497440
mov bl, byte [esi + 0x2e8]
add esp, 0x2c
mov byte [esi + 0x2e5], 1
call fcn.00630957
movzx edx, byte [esi + 0x2e9]
mov dword [esp + 0x58], eax
movzx eax, bl
fild dword [esp + 0x58]
sub edx, eax
mov dword [esp + 0x58], edx
fimul dword [esp + 0x58]
fmul dword [0x64fa20]
call fcn.006311dc
mov edx, dword [esp + 8]
sub bl, al
mov eax, dword [esp + 0xc]
lea ecx, [esi + 0x2a0]
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov cl, byte [esp + 0x3c]
mov byte [esi + 0x2e7], bl
mov byte [esi + 0x2e2], cl
mov dword [esi + 0x2fc], fcn.00498be0
pop ebx
pop esi
add esp, 0x30
ret
Function at 0x4cd6f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [eax + eax*8]
cmp dword [ebp*8 + 0x847710], 0xff
lea ebp, [ebp*8 + 0x8476e8]
je 0x4cd759
mov eax, dword [ebp + 0x10]
push ebx
xor ebx, ebx
cmp word [ebp + 0x1e], bx
jle 0x4cd758
push esi
push edi
jmp 0x4cd720
mov ecx, dword [0x705898]
mov edx, dword [ecx + 0x3c4]
mov edi, dword [eax + edx*4 + 0x90]
mov ecx, edx
xor ecx, 1
mov esi, dword [eax + ecx*4 + 0x90]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
movsx edx, word [ebp + 0x1e]
add ebx, 1
add eax, 0xa0
cmp ebx, edx
jl 0x4cd720
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x4d1140
Capabilities:
Get file size
Read file on windows

Disassembly:
push ecx
mov eax, dword [0x8c0ec0]
mov eax, dword [eax + 4]
cmp eax, 0x13
ja case.0x4d1159.2
movzx ecx, byte [eax + 0x4d12c8]
jmp dword [ecx*4 + 0x4d12ac]
mov eax, dword [0x8c0ecc]
mov dword [eax + 0xb0], 0
mov dword [eax + 0xac], 0
pop ecx
ret
mov edx, dword [0x8c0ecc]
cmp dword [edx + 0xbc], 0xffffffff
jne case.0x4d1159.2
push 0xff
call fcn.0053e250
mov ecx, dword [0x8c0ecc]
add esp, 4
mov dword [ecx + 0xbc], eax
pop ecx
ret
call dword [sym.imp.winmm.dll_timeGetTime]
mov edx, dword [str.Loading_game_data.]
push edx
push 0x8c0ed0
mov dword [0x8d208c], eax
mov dword [0x8d2090], 0
call fcn.00631251
push 0x8c0ed0
call fcn.004b11a0
add esp, 0xc
pop ecx
ret
mov eax, dword [0x8c0ecc]
mov ecx, dword [eax + 0xbc]
push 0
push 0
push 0
push ecx
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne case.0x4d1159.2
mov edx, dword [0x8c0ecc]
mov dword [edx + 0xc0], 1
pop ecx
ret
cmp dword [0x8d2090], 0
jne case.0x4d1159.2
mov eax, dword [0x8c0ecc]
mov ecx, dword [eax + 0xbc]
push 0
push ecx
mov dword [0x8d2090], 1
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, 0x10fc0
jne 0x4d126f
push 0
lea edx, [esp + 4]
push edx
push eax
mov eax, dword [0x8c0ecc]
mov ecx, dword [eax + 0xbc]
push 0x8c0fd8
push ecx
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
je 0x4d126f
cmp dword [esp], 0x10fc0
je case.0x4d1159.2
mov edx, dword [0x8c0ecc]
mov dword [edx + 0xc0], 2
pop ecx
ret
mov eax, dword [0x8c0ecc]
mov eax, dword [eax + 0xbc]
cmp eax, 0xffffffff
je case.0x4d1159.2
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ecx, dword [0x8c0ecc]
mov dword [ecx + 0xbc], 0xffffffff
pop ecx
ret
Function at 0x4d1400
Capabilities:
Get file size

Disassembly:
mov ecx, dword [0x8c0ec0]
mov ecx, dword [ecx + 4]
cmp ecx, 0xf
push esi
mov eax, 0x16
ja case.default.0x4d1418
jmp dword [ecx*4 + 0x4d1690]
mov edx, dword [0x8c0ecc]
cmp dword [edx], 2
jne 0x4d1450
push 0xa
push 2
mov ecx, 0x17
mov eax, 5
call fcn.004d0ce0
mov ecx, dword [0x8c0ec0]
add esp, 8
mov eax, 0x14
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 1
mov dword [ecx + 4], eax
pop esi
ret
mov eax, dword [0x8c0ecc]
mov eax, dword [eax + 0xbc]
cmp eax, 0xffffffff
je 0x4d14fc
push 0
push eax
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, 0x10fc0
jb 0x4d14fc
cmp dword [0x8d2094], 0
je 0x4d149d
mov ecx, dword [0x8c0ec0]
mov eax, 0xc
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov edx, dword [ecx + 0x18]
push edx
call fcn.004b2640
add esp, 4
mov esi, eax
call fcn.004b25a0
test eax, eax
mov eax, dword [0x8c0ec0]
je 0x4d14c4
cmp dword [eax], 6
je 0x4d14d6
cmp dword [eax], 3
jne case.0x4d1418.11
push esi
call fcn.004acc50
add esp, 4
test eax, eax
je case.0x4d1418.11
push 0xb
push 0xc
mov ecx, 0x19
mov eax, 8
call fcn.004d0ce0
mov ecx, dword [0x8c0ec0]
add esp, 8
mov eax, 0x14
mov dword [ecx + 4], eax
pop esi
ret
cmp dword [0x8c0ec8], 0
je 0x4d1544
cmp dword [0x8d2094], 0
je 0x4d151e
mov ecx, dword [0x8c0ec0]
mov eax, 3
mov dword [ecx + 4], eax
pop esi
ret
push 0xb
push 3
mov ecx, 0x18
mov eax, 9
call fcn.004d0ce0
mov ecx, dword [0x8c0ec0]
add esp, 8
mov eax, 0x14
mov dword [ecx + 4], eax
pop esi
ret
cmp dword [0x8d2094], 0
je 0x4d155d
mov ecx, dword [0x8c0ec0]
mov eax, 0x16
mov dword [ecx + 4], eax
pop esi
ret
mov eax, 0x20
jmp 0x4d1674
mov ecx, dword [0x8c0ec0]
xor eax, eax
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 4
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 5
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 6
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 7
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 8
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 9
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 0xa
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 0xb
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 0xd
mov dword [ecx + 4], eax
pop esi
ret
mov ecx, dword [0x8c0ec0]
mov eax, 0xe
mov dword [ecx + 4], eax
pop esi
ret
call dword [sym.imp.winmm.dll_timeGetTime]
sub eax, dword [0x8d208c]
mov ecx, 0x3ed
cmp ecx, eax
mov ecx, dword [0x8c0ec0]
sbb eax, eax
neg eax
add eax, 0xe
mov dword [ecx + 4], eax
pop esi
ret
push 0x8c0fd8
call fcn.004b2990
mov edx, dword [0x8c0ec0]
add esp, 4
cmp dword [edx], 3
jne 0x4d1656
call fcn.005267c0
cmp dword [0x8d2094], 0
mov eax, dword [0x8c0ec0]
mov dword [eax + 0x28], 1
jne 0x4d154d
mov eax, 0x13
mov ecx, 0x21
call fcn.004d0cb0
mov eax, 0x14
mov ecx, dword [0x8c0ec0]
mov dword [ecx + 4], eax
pop esi
ret