Function at 0x3a9d62b5
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file via mapping

Disassembly:
push 0x74
mov eax, 0x3a9f350f
call fcn.3a9f23af
mov esi, ecx
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x15], 0
xor edi, edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], edi
push 6
push 0x3a9d2d04
push esi
call fcn.3a9e30a4
add esp, 0xc
test eax, eax
jne 0x3a9d63a6
mov byte [ebp - 0x1d], 1
add esi, 0xc
mov dword [ebp - 0x1c], esi
movzx eax, word [esi]
push eax
call fcn.3a9de20a
pop ecx
test eax, eax
je 0x3a9d631b
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
call fcn.3a9de20a
pop ecx
pop ecx
call fcn.3a9f2480
jmp 0x3a9d6373
push 0x2f
push dword [ebp - 0x1c]
call fcn.3a9de20a
pop ecx
pop ecx
cmp eax, edi
je 0x3a9d6330
sub eax, dword [ebp - 0x1c]
jmp 0x3a9d6342
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x3a9d6336
sub eax, edx
sar eax, 1
mov edi, eax
lea esi, [edi + edi]
lea eax, [esi + 2]
call fcn.3a9ef220
mov dword [ebp - 0x10], esp
mov ebx, esp
push edi
push dword [ebp - 0x1c]
inc edi
push edi
push ebx
call fcn.3a9de20a
add esp, 0x10
xor eax, eax
mov word [esi + ebx], ax
push ebx
call fcn.3a9de20a
xor edi, edi
mov dword [ebp - 0x28], eax
cmp eax, edi
je 0x3a9d63dc
mov ecx, dword [ebp - 0x1c]
movzx eax, word [ecx]
cmp ax, 0x2f
je 0x3a9d639f
cmp ax, di
je 0x3a9d6399
inc ecx
inc ecx
mov dword [ebp - 0x1c], ecx
movzx eax, word [ecx]
cmp ax, 0x2f
jne 0x3a9d6386
cmp word [ecx], 0x2f
jne 0x3a9d6408
inc ecx
inc ecx
mov dword [ebp - 0x1c], ecx
jmp 0x3a9d6408
push 7
push 0x3a9d2ce4
push esi
call fcn.3a9de20a
add esp, 0xc
test eax, eax
jne 0x3a9d63ed
mov byte [ebp - 0x15], 1
add esi, 0xe
mov dword [ebp - 0x1c], esi
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.3a9de20a
pop ecx
pop ecx
call fcn.3a9f2480
mov dword [ebp - 0x34], eax
cmp eax, edi
jne 0x3a9d6408
or eax, 0xffffffff
lea esp, [ebp - 0x90]
call fcn.3a9f241a
ret 0x10
mov dword [ebp - 0x1c], esi
push 7
push 0x3a9d2cf4
push esi
call fcn.3a9de20a
add esp, 0xc
test eax, eax
jne 0x3a9d6408
add dword [ebp - 0x1c], 0xe
mov ebx, dword [0x3a9f81d4]
mov dword [ebp - 0x24], edi
cmp ebx, edi
jle 0x3a9d649a
xor edi, edi
mov eax, dword [0x3a9f81dc]
lea esi, [edi + eax]
mov eax, dword [ebp + 8]
cmp dword [esi], eax
jne 0x3a9d648d
mov eax, dword [esi + 8]
test eax, eax
jne 0x3a9d6436
cmp byte [ebp - 0x15], al
je 0x3a9d648d
cmp byte [ebp - 0x15], 0
je 0x3a9d6444
mov ecx, dword [ebp - 0x34]
cmp dword [esi + 0x1c], ecx
jne 0x3a9d648d
xor ecx, ecx
cmp dword [esi + 0x20], ecx
setne cl
movzx edx, byte [ebp + 0xc]
cmp ecx, edx
jne 0x3a9d648d
cmp byte [ebp + 0xc], 0
je 0x3a9d6462
mov ecx, dword [ebp + 0x10]
cmp dword [esi + 0x24], ecx
jne 0x3a9d648d
mov ecx, dword [ebp + 0x14]
cmp dword [esi + 0x14], ecx
jne 0x3a9d648d
cmp byte [ebp - 0x15], 0
jne 0x3a9d64bd
cmp byte [ebp - 0x1d], 0
je 0x3a9d647e
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [esi + 4]
jne 0x3a9d648d
push dword [ebp - 0x1c]
push eax
call fcn.3a9de20a
pop ecx
pop ecx
test eax, eax
je 0x3a9d64bd
inc dword [ebp - 0x24]
add edi, 0x30
cmp dword [ebp - 0x24], ebx
jl 0x3a9d641b
xor edi, edi
push 0x30
push edi
lea eax, [ebp - 0x7c]
push eax
call fcn.3a9ea3d0
add esp, 0xc
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x78], esi
cmp byte [ebp - 0x15], 0
je 0x3a9d6516
mov dword [ebp - 0x74], edi
jmp 0x3a9d655b
cmp dword [esi + 0x28], 0
jne 0x3a9d650b
mov eax, dword [0x3a9f81e0]
cmp eax, dword [ebp - 0x24]
jne 0x3a9d64d7
mov eax, dword [esi + 0x2c]
mov dword [0x3a9f81e0], eax
jmp 0x3a9d6507
cmp eax, 0xffffffff
je 0x3a9d6507
mov edi, dword [0x3a9f81dc]
imul eax, eax, 0x30
add eax, edi
mov edx, eax
mov ecx, dword [edx + 0x2c]
mov eax, ecx
imul eax, eax, 0x30
add eax, edi
cmp ecx, dword [ebp - 0x24]
je 0x3a9d6501
mov eax, ecx
cmp eax, 0xffffffff
jne 0x3a9d64e2
jmp 0x3a9d6507
mov eax, dword [eax + 0x2c]
mov dword [edx + 0x2c], eax
or dword [esi + 0x2c], 0xffffffff
inc dword [esi + 0x28]
mov eax, dword [ebp - 0x24]
jmp 0x3a9d63df
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x3a9d651c
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
call fcn.3a9de20a
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
cmp dx, di
jne 0x3a9d653d
sub eax, ecx
sar eax, 1
push dword [ebp - 0x1c]
inc eax
push eax
push dword [ebp - 0x74]
call fcn.3a9de20a
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 1
or dword [ebp - 0x50], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 4], edi
wait
cmp byte [ebp - 0x15], 0
je 0x3a9d658b
push dword [ebp + 0xc]
push edi
push dword [ebp - 0x34]
jmp 0x3a9d65dc
cmp byte [ebp - 0x1d], 0
je 0x3a9d65ea
push dword [ebp - 0x1c]
push esi
call fcn.3a9de20a
cmp eax, edi
jne 0x3a9d65b3
mov dword [ebp - 0x4c], 6
push 0x3a9f3fd8
lea eax, [ebp - 0x4c]
push eax
call fcn.3a9de20a
push eax
push esi
call dword [sym.imp.kernel32.dll_LoadResource]
cmp eax, edi
jne 0x3a9d65d0
mov dword [ebp - 0x40], 6
push 0x3a9f3fd8
lea eax, [ebp - 0x40]
jmp 0x3a9d65ad
push eax
call dword [sym.imp.kernel32.dll_LockResource]
push dword [ebp + 0xc]
push eax
push edi
lea eax, [ebp - 0x7c]
push eax
call fcn.3a9d6b0e
jmp 0x3a9d66ba
or dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 1
wait
push dword [ebp - 0x1c]
call fcn.3a9de20a
mov ebx, eax
mov dword [ebp - 0x2c], ebx
cmp ebx, 0xffffffff
jne 0x3a9d661c
mov dword [ebp - 0x38], 5
push 0x3a9f3fd8
lea eax, [ebp - 0x38]
jmp 0x3a9d65ad
push 0
push ebx
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, 0x3a
jae 0x3a9d663e
mov dword [ebp - 0x48], 5
push 0x3a9f3fd8
lea eax, [ebp - 0x48]
jmp 0x3a9d65ad
push ebx
call fcn.3a9de20a
mov edi, eax
xor eax, eax
cmp edi, eax
jne 0x3a9d6660
mov dword [ebp - 0x3c], 5
push 0x3a9f3fd8
lea eax, [ebp - 0x3c]
jmp 0x3a9d65ad
push eax
push eax
push eax
push 4
push edi
call dword [sym.imp.kernel32.dll_MapViewOfFile]
mov esi, eax
mov dword [ebp - 0x30], esi
test esi, esi
jne 0x3a9d6689
mov dword [ebp - 0x44], 2
push 0x3a9f3fd8
lea eax, [ebp - 0x44]
jmp 0x3a9d65ad
mov eax, 0x4d42
cmp word [esi], ax
jne 0x3a9d66a2
push dword [ebp + 0xc]
push esi
push 0
lea eax, [ebp - 0x7c]
push eax
call fcn.3a9d6b0e
push esi
call dword [sym.imp.kernel32.dll_UnmapViewOfFile]
push edi
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
call esi
push ebx
call esi
wait
and dword [ebp - 4], 0
mov eax, dword [0x3a9f81e0]
cmp eax, 0xffffffff
je 0x3a9d671b
xor ecx, ecx
mov ebx, eax
mov dword [ebp - 0x24], ebx
mov edi, ebx
imul edi, edi, 0x30
add edi, dword [0x3a9f81dc]
mov eax, dword [edi + 0x2c]
cmp eax, 0xffffffff
je 0x3a9d66f6
mov ebx, eax
mov dword [ebp - 0x24], ebx
mov ecx, edi
mov edx, ebx
imul edx, edx, 0x30
mov eax, 0x3a9f81d4
add edx, dword [eax + 8]
mov edi, edx
jmp 0x3a9d66d6
mov eax, 0x3a9f81d4
cmp ebx, dword [eax + 0xc]
jne 0x3a9d6706
or dword [eax + 0xc], 0xffffffff
jmp 0x3a9d670a
or dword [ecx + 0x2c], 0xffffffff
mov eax, ebx
call fcn.3a9d6ee8
push 0xc
pop ecx
lea esi, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
jmp 0x3a9d6729
lea eax, [ebp - 0x7c]
push eax
call fcn.3a9de20a
mov ebx, eax
mov dword [ebp - 0x24], ebx
wait
or dword [ebp - 4], 0xffffffff
mov eax, ebx
jmp 0x3a9d63df