Function at 0x7a341bc0
Capabilities:
Identify system language via api
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
lea edi, [ebp - 0x118]
push ebx
sub esp, 0x174
mov dword [ebp - 0x138], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x13c], ecx
call sym._LZSeek_12
sub esp, 0xc
mov ebx, eax
mov dword [esp + 8], 0x108
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._LZRead_12
sub esp, 0xc
cmp eax, 0x13
jbe 0x7a341c5c
cmp eax, 0x107
jbe 0x7a341d92
movzx eax, word [ebp - 0x100]
cmp ax, 0x10b
je 0x7a341c70
xor edi, edi
cmp ax, 0x20b
jne 0x7a341c5e
lea eax, [ebp - 0x80]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 4]
test eax, eax
jne 0x7a341c89
test byte [section..data], 8
jne 0x7a341e00
xor edi, edi
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x90]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 4]
test eax, eax
je 0x7a341c4f
movzx eax, word [ebp - 0x112]
lea edi, [eax + eax*4]
mov dword [ebp - 0x144], eax
call sym._GetProcessHeap_0
shl edi, 3
mov dword [esp + 4], 0
mov dword [esp + 8], edi
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov dword [ebp - 0x140], eax
test eax, eax
je 0x7a341c5c
movzx eax, word [ebp - 0x104]
mov dword [esp + 8], 0
mov dword [esp], esi
lea eax, [ebx + eax + 0x18]
mov dword [esp + 4], eax
call sym._LZSeek_12
mov eax, dword [ebp - 0x140]
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._LZRead_12
sub esp, 0xc
cmp edi, eax
jne 0x7a342040
mov edi, dword [ebp - 0x144]
test edi, edi
je 0x7a341d4e
mov eax, dword [ebp - 0x134]
mov ebx, dword [ebp - 0x140]
mov dword [ebp - 0x148], esi
xor edx, edx
mov esi, dword [ebp - 0x144]
mov ecx, dword [eax]
lea esi, [esi]
nop
mov eax, dword [ebx + 0xc]
cmp ecx, eax
jb 0x7a341d44
mov edi, dword [ebx + 0x10]
add eax, edi
cmp ecx, eax
jb 0x7a341e40
add edx, 1
add ebx, 0x28
cmp esi, edx
jne 0x7a341d30
call sym._GetProcessHeap_0
mov esi, dword [ebp - 0x140]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], esi
call sym._HeapFree_12
sub esp, 0xc
test byte [section..data], 8
je 0x7a341c5c
mov dword [esp + 0x14], str.Couldnt_find_resource_section_n
mov dword [esp + 0x10], 0x148
jmp 0x7a341e10
mov edx, 0x108
sub edx, eax
add eax, edi
cmp edx, 4
jae 0x7a341dc0
test edx, edx
je 0x7a341c24
mov byte [eax], 0
test dl, 2
je 0x7a341c24
xor ecx, ecx
mov word [eax + edx - 2], cx
jmp 0x7a341c24
lea edi, [eax + 4]
mov dword [eax], 0
and edi, 0xfffffffc
mov dword [eax + edx - 4], 0
sub eax, edi
lea ecx, [edx + eax]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
movzx eax, word [ebp - 0x100]
cmp ax, 0x10b
jne 0x7a341c31
jmp 0x7a341c70
mov dword [esp + 0x14], 0x7a349350
mov dword [esp + 0x10], 0x12a
mov dword [esp + 0xc], str.find_pe_resource
xor edi, edi
mov dword [esp + 8], 0x7a3490cd
mov dword [esp + 4], 0x7a348000
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x7a341c5e
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
cmp eax, edi
jb 0x7a342030
call sym._GetProcessHeap_0
mov ecx, dword [ebp - 0x148]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], ecx
call sym._HeapAlloc_12
sub esp, 0xc
mov dword [ebp - 0x14c], eax
test eax, eax
je 0x7a3421e0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._LZSeek_12
mov eax, dword [ebp - 0x14c]
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._LZRead_12
sub esp, 0xc
cmp edi, eax
jne 0x7a341fe0
cmp edi, dword [ebp - 0x148]
jb 0x7a342209
mov esi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x14c]
add eax, dword [esi]
sub eax, dword [ebx + 0xc]
movzx ecx, word [eax + 0xc]
mov esi, eax
mov dword [ebp - 0x150], eax
movzx eax, word [eax + 0xe]
lea ebx, [ecx + eax - 1]
cmp ecx, ebx
jg 0x7a342430
lea eax, [ecx + ebx]
mov edi, dword [ebp - 0x150]
sar eax, 1
lea esi, [esi + eax*8 + 0x10]
movzx edx, word [esi]
cmp dx, 0x10
jne 0x7a341f41
jmp 0x7a342070
lea ebx, [eax - 1]
cmp ebx, ecx
jl 0x7a342430
lea eax, [ebx + ecx]
sar eax, 1
lea esi, [edi + eax*8 + 0x10]
movzx edx, word [esi]
cmp dx, 0x10
je 0x7a342070
cmp dx, 0x10
ja 0x7a341f20
lea ecx, [eax + 1]
jmp 0x7a341f23
mov edi, dword [ebp - 0x15c]
mov eax, dword [edi + 4]
and eax, 0x7fffffff
add eax, dword [ebp - 0x150]
je 0x7a3421c0
mov edx, dword [ebp - 0x144]
test edx, edx
je 0x7a341f9c
mov esi, dword [eax]
mov edx, dword [ebp - 0x140]
xor ebx, ebx
mov edi, dword [ebp - 0x144]
mov ecx, dword [edx + 0xc]
cmp esi, ecx
jb 0x7a341f92
add ecx, dword [edx + 0x10]
cmp esi, ecx
jb 0x7a34226c
add ebx, 1
add edx, 0x28
cmp edi, ebx
jne 0x7a341f80
test byte [section..data], 8
je 0x7a341fe0
mov dword [esp + 0x14], str.Couldnt_find_resource_data_section_n
mov dword [esp + 0x10], 0x17b
mov dword [esp + 0xc], str.find_pe_resource
mov dword [esp + 8], 0x7a3490cd
mov dword [esp + 4], 0x7a348000
mov dword [esp], 3
call sym._ros_dbg_log
lea esi, [esi]
xor edi, edi
call sym._GetProcessHeap_0
mov ecx, dword [ebp - 0x14c]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], ecx
call sym._HeapFree_12
sub esp, 0xc
call sym._GetProcessHeap_0
mov esi, dword [ebp - 0x140]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], esi
call sym._HeapFree_12
sub esp, 0xc
jmp 0x7a341c5e
mov dword [ebp - 0x148], edi
jmp 0x7a341e57
call sym._GetProcessHeap_0
mov ecx, dword [ebp - 0x140]
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp], eax
mov dword [esp + 8], ecx
call sym._HeapFree_12
sub esp, 0xc
jmp 0x7a341c5e
mov edi, dword [esi + 4]
and edi, 0x7fffffff
add edi, dword [ebp - 0x150]
je 0x7a342430
movzx ecx, word [edi + 0xc]
movzx eax, word [edi + 0xe]
lea ebx, [ecx + eax - 1]
cmp ecx, ebx
jle 0x7a3420ab
jmp 0x7a342293
lea ebx, [eax - 1]
cmp ebx, ecx
jl 0x7a342293
lea eax, [ebx + ecx]
sar eax, 1
lea esi, [edi + eax*8 + 0x10]
movzx edx, word [esi]
cmp dx, 1
je 0x7a3420d0
cmp dx, 1
ja 0x7a3420a0
lea ecx, [eax + 1]
jmp 0x7a3420a3
mov eax, dword [esi + 4]
and eax, 0x7fffffff
add eax, dword [ebp - 0x150]
mov dword [ebp - 0x134], eax
je 0x7a342293
test byte [ebp + 8], 1
jne 0x7a3422b5
mov ecx, 0x409
lea eax, [ebp - 0x12a]
mov esi, 0x409
mov edi, 1
mov word [ebp - 0x12a], cx
mov dword [ebp - 0x160], eax
mov ebx, dword [ebp - 0x134]
movzx ecx, word [ebx + 0xc]
movzx eax, word [ebx + 0xe]
lea edx, [ecx + eax - 1]
mov eax, ecx
mov dword [ebp - 0x154], ecx
add eax, edx
mov dword [ebp - 0x158], edx
sar eax, 1
mov dword [ebp - 0x164], eax
lea eax, [ebx + eax*8 + 0x10]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x128]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x160]
lea eax, [eax + edi*2]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x158]
cmp ecx, ebx
jg 0x7a3421c0
mov eax, dword [ebp - 0x15c]
movzx edx, word [eax]
cmp dx, si
je 0x7a341f4c
mov eax, dword [ebp - 0x164]
jmp 0x7a3421b2
lea ebx, [eax - 1]
cmp ebx, ecx
jl 0x7a3421c0
lea eax, [ebx + ecx]
mov edi, dword [ebp - 0x134]
sar eax, 1
lea edi, [edi + eax*8 + 0x10]
movzx edx, word [edi]
cmp dx, si
je 0x7a341f52
cmp dx, si
ja 0x7a342190
lea ecx, [eax + 1]
jmp 0x7a342193
mov eax, dword [ebp - 0x148]
cmp dword [ebp - 0x160], eax
je 0x7a342230
movzx esi, word [eax]
add eax, 2
mov dword [ebp - 0x148], eax
jmp 0x7a342165
call sym._GetProcessHeap_0
mov esi, dword [ebp - 0x140]
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp], eax
mov dword [esp + 8], esi
call sym._HeapFree_12
sub esp, 0xc
jmp 0x7a341c5e
mov eax, dword [ebp - 0x148]
mov dword [esp + 4], 0
sub eax, edi
add edi, dword [ebp - 0x14c]
mov dword [esp + 8], eax
mov dword [esp], edi
call sym._memset
jmp 0x7a341ece
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 0x14]
and eax, 0x7fffffff
add eax, dword [ebp - 0x150]
jne 0x7a341f66
test byte [section..data], 8
je 0x7a341fe0
mov dword [esp + 0x14], str.No_default_language_entry_found_n
mov dword [esp + 0x10], 0x16d
jmp 0x7a341fb5
mov ecx, dword [eax + 4]
mov esi, dword [ebp - 0x138]
mov edi, 1
mov dword [esi], ecx
mov esi, dword [ebp - 0x13c]
mov ecx, dword [edx + 0x14]
add ecx, dword [eax]
mov eax, ecx
sub eax, dword [edx + 0xc]
mov dword [esi], eax
jmp 0x7a341fe2
test byte [section..data], 8
je 0x7a341fe0
mov dword [esp + 0x14], str.No_resid_entry_found_n
mov dword [esp + 0x10], 0x167
jmp 0x7a341fb5
xor esi, esi
mov word [ebp - 0x12a], si
mov eax, dword fs:[0x18]
mov ebx, dword [eax + 0xc4]
test bx, bx
je 0x7a342452
mov word [ebp - 0x128], bx
call sym._GetUserDefaultLangID_0
mov edx, eax
test ax, ax
je 0x7a3422ef
cmp bx, ax
jne 0x7a3424ac
call sym._GetUserDefaultLangID_0
and ax, 0x3ff
je 0x7a342498
mov ebx, 2
cmp ax, word [ebp - 0x128]
je 0x7a342487
cmp ebx, 3
jne 0x7a34248e
cmp ax, word [ebp - 0x126]
je 0x7a3424a2
mov word [ebp + ebx*2 - 0x12a], ax
lea edi, [ebx + 1]
call sym._GetUserDefaultLangID_0
lea esi, [edi + edi]
and ax, 0x3ff
mov edx, eax
lea eax, [ebp - 0x12a]
mov dword [ebp - 0x160], eax
or dh, 4
mov ebx, eax
lea ecx, [eax + esi]
cmp dx, word [eax]
je 0x7a34236a
add eax, 2
cmp ecx, eax
jne 0x7a342353
mov word [ebp + esi - 0x12a], dx
add edi, 1
call sym._GetSystemDefaultLangID_0
mov edx, dword [ebp - 0x160]
lea esi, [edi + edi]
lea ecx, [edx + esi]
lea esi, [esi]
nop
cmp ax, word [edx]
je 0x7a342397
add edx, 2
cmp ecx, edx
jne 0x7a342380
mov word [ebp + esi - 0x12a], ax
add edi, 1
call sym._GetSystemDefaultLangID_0
mov edx, dword [ebp - 0x160]
lea esi, [edi + edi]
and ax, 0x3ff
lea ecx, [edx + esi]
lea esi, [esi]
cmp ax, word [edx]
je 0x7a3423c7
add edx, 2
cmp ecx, edx
jne 0x7a3423b0
mov word [ebp + esi - 0x12a], ax
add edi, 1
call sym._GetSystemDefaultLangID_0
lea esi, [edi + edi]
and ax, 0x3ff
mov edx, eax
mov eax, dword [ebp - 0x160]
or dh, 4
lea ecx, [eax + esi]
cmp dx, word [eax]
je 0x7a3423f8
add eax, 2
cmp ecx, eax
jne 0x7a3423e1
mov word [ebp + esi - 0x12a], dx
add edi, 1
mov eax, dword [ebp - 0x160]
lea edx, [edi + edi]
add eax, edx
cmp word [ebx], 0x409
je 0x7a342421
add ebx, 2
cmp eax, ebx
jne 0x7a342403
mov ebx, 0x409
add edi, 1
mov word [ebp + edx - 0x12a], bx
movzx esi, word [ebp - 0x12a]
jmp 0x7a342116
test byte [section..data], 8
je 0x7a341fe0
mov dword [esp + 0x14], str.No_typeid_entry_found_n
mov dword [esp + 0x10], 0x161
jmp 0x7a341fb5
call sym._GetUserDefaultLangID_0
mov edx, eax
mov eax, 1
test dx, dx
je 0x7a3424b3
mov word [ebp + eax*2 - 0x12a], dx
lea ebx, [eax + 1]
movzx esi, word [ebp - 0x12a]
call sym._GetUserDefaultLangID_0
and ax, 0x3ff
cmp ax, si
jne 0x7a342303
mov edi, ebx
jmp 0x7a342331
mov ebx, 2
jmp 0x7a342326
mov edi, 2
jmp 0x7a342331
mov edi, 3
jmp 0x7a342331
mov eax, 2
jmp 0x7a342463
call sym._GetUserDefaultLangID_0
and ax, 0x3ff
je 0x7a3424c8
mov ebx, 1
jmp 0x7a342326
mov edi, 1
jmp 0x7a342331