Function at 0x100038c0
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x10039080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0
lea eax, [ebp - 0xa8]
push eax
push str.lang.cfg
call dword [sym.imp.KERNEL32.dll_OpenFile]
mov edi, eax
cmp edi, 0xffffffff
je 0x10003b51
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea ecx, [esi + 1]
push ecx
call fcn.1000d6c8
add esp, 4
mov ebx, eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0xb0], ebx
push 0
push eax
push esi
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10003b51
mov eax, dword [ebp - 0xac]
mov ecx, ebx
xorps xmm0, xmm0
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 8], 0
mov byte [eax + ebx], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003952
sub ecx, edx
push ecx
push ebx
lea ecx, [ebp - 0x1c]
call fcn.10007110
mov edi, dword [ebp - 8]
lea ecx, [ebp - 0x1c]
mov ebx, dword [ebp - 0x1c]
cmp edi, 0xf
mov esi, dword [ebp - 0xc]
cmova ecx, ebx
cmp esi, 7
jne 0x100039ea
mov edi, esi
mov edx, str.Russian
sub edi, 4
jb 0x10003999
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000399e
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10003988
cmp edi, 0xfffffffc
je 0x100039d2
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100039cb
cmp edi, 0xfffffffd
je 0x100039d2
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100039cb
cmp edi, 0xfffffffe
je 0x100039d2
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100039cb
cmp edi, 0xffffffff
je 0x100039d2
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100039d2
sbb eax, eax
or eax, 1
jmp 0x100039d4
xor eax, eax
mov edi, dword [ebp - 8]
test eax, eax
jne 0x100039ea
mov dword [0x1003aef0], 0x4e3
jmp 0x10003ada
cmp edi, 0xf
lea ecx, [ebp - 0x1c]
cmova ecx, ebx
cmp esi, 7
jne 0x10003a63
mov edi, esi
mov edx, str.Chinese
sub edi, 4
jb 0x10003a15
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10003a1a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10003a04
cmp edi, 0xfffffffc
je 0x10003a4e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10003a47
cmp edi, 0xfffffffd
je 0x10003a4e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10003a47
cmp edi, 0xfffffffe
je 0x10003a4e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10003a47
cmp edi, 0xffffffff
je 0x10003a4e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10003a4e
sbb eax, eax
or eax, 1
jmp 0x10003a50
xor eax, eax
mov edi, dword [ebp - 8]
test eax, eax
jne 0x10003a63
mov dword [0x1003aef0], 0x3a8
jmp 0x10003ada
cmp edi, 0xf
lea ecx, [ebp - 0x1c]
cmova ecx, ebx
cmp esi, 6
jne 0x10003b25
mov edx, str.Korean
sub esi, 4
jb 0x10003a91
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10003a96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10003a80
cmp esi, 0xfffffffc
je 0x10003aca
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10003ac3
cmp esi, 0xfffffffd
je 0x10003aca
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10003ac3
cmp esi, 0xfffffffe
je 0x10003aca
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10003ac3
cmp esi, 0xffffffff
je 0x10003aca
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10003aca
sbb eax, eax
or eax, 1
jmp 0x10003acc
xor eax, eax
test eax, eax
jne 0x10003b25
mov dword [0x1003aef0], 0x3b5
push dword [ebp - 0xb0]
call fcn.1000d6d1
add esp, 4
cmp edi, 0xf
jbe 0x10003b53
lea ecx, [edi + 1]
mov eax, ebx
cmp ecx, 0x1000
jb 0x10003b0a
mov ebx, dword [eax - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10003b64
push ecx
push ebx
call fcn.1000d587
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
cmp edi, 0xf
jbe 0x10003b51
lea ecx, [edi + 1]
mov eax, ebx
cmp ecx, 0x1000
jb 0x10003b47
mov ebx, dword [eax - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10003b64
push ecx
push ebx
call fcn.1000d587
add esp, 8
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000d579
mov esp, ebp
pop ebp
ret
call fcn.100140c1
int3