Function at 0x10023a50
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
push ebx
push esi
push edi
push 2
mov ebx, ecx
mov dword [ebp - 0x14], edx
push 0
push ebx
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 4], eax
test eax, eax
jne 0x10023cd0
push ebx
call sym.dopuslib32.dll_FindFilePartW
add esp, 4
mov dword [ebp - 8], eax
mov edx, eax
mov ecx, 0x100c2ac0
call fcn.10008f90
test eax, eax
je 0x10023ddf
test ebx, ebx
jne 0x10023aa9
xor eax, eax
mov word [ebp - 0x230], ax
jmp 0x10023aec
lea ecx, [ebp - 0x230]
mov esi, ebx
mov eax, ecx
mov edx, 0x104
sub esi, eax
lea ebx, [ebx]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x10023ae7
movzx eax, word [esi + ecx]
test ax, ax
je 0x10023ae0
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x10023ac0
jmp 0x10023ae4
test edx, edx
jne 0x10023ae7
sub ecx, 2
xor eax, eax
mov word [ecx], ax
cmp dword [str.english], 0
mov dword [ebp - 0x10], 0
je 0x10023ddf
mov esi, 0x100c2ac0
jmp 0x10023b10
lea eax, [ebp - 0x230]
push eax
call sym.dopuslib32.dll_FindFilePartW
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10023b2a
xor eax, eax
mov word [ebx], ax
mov edi, dword [esi]
test edi, edi
jne 0x10023b3b
xor eax, eax
mov word [ebp - 0x230], ax
jmp 0x10023ba7
mov ecx, 0x104
lea eax, [ebp - 0x230]
cmp word [eax], 0
je 0x10023b54
add eax, 2
sub ecx, 1
jne 0x10023b46
mov eax, 0x104
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x10023ba7
mov ecx, 0x104
lea eax, [ebp - 0x230]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x10023b9f
mov edx, SysReAllocString
sub edi, eax
test edx, edx
je 0x10023ba2
movzx esi, word [edi + eax]
test si, si
je 0x10023b9b
mov word [eax], si
dec edx
add eax, 2
sub ecx, 1
jne 0x10023b80
jmp 0x10023b9f
test ecx, ecx
jne 0x10023ba2
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x104
lea eax, [ebp - 0x230]
cmp word [eax], 0
je 0x10023bc0
add eax, 2
sub ecx, 1
jne 0x10023bb2
mov eax, 0x104
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x10023c18
mov ecx, 0x104
lea eax, [ebp - 0x230]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x10023c10
mov edi, str..dll
mov edx, SysReAllocString
sub edi, eax
test edx, edx
je 0x10023c13
movzx esi, word [edi + eax]
test si, si
je 0x10023c0c
mov word [eax], si
dec edx
add eax, 2
sub ecx, 1
jne 0x10023bf1
jmp 0x10023c10
test ecx, ecx
jne 0x10023c13
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 8]
or esi, 0xffffffff
mov edi, eax
test ebx, ebx
je 0x10023c79
test eax, eax
je 0x10023c7d
sub ebx, eax
mov dword [ebp - 0xc], ebx
lea ecx, [ecx]
test esi, esi
js 0x10023c3b
mov eax, esi
dec esi
test eax, eax
jle 0x10023ca9
movzx eax, word [ebx + edi]
push eax
call fcn.10086fcc
movzx ebx, ax
movzx eax, word [edi]
push eax
call fcn.10086fcc
movzx eax, ax
add esp, 8
cmp bx, ax
jne 0x10023c69
test bx, bx
je 0x10023ca9
mov ebx, dword [ebp - 0xc]
add edi, 2
jmp 0x10023c30
test ax, ax
jne 0x10023c73
cmp esi, 0xffffff9d
je 0x10023ca9
mov ecx, ebx
sub ecx, eax
jmp 0x10023c8b
cmp ebx, eax
je 0x10023ca9
xor ecx, ecx
test ebx, ebx
setne cl
lea ecx, [ecx*2 - 1]
test ecx, ecx
je 0x10023ca9
push 2
push 0
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 4], eax
test eax, eax
jne 0x10023cd0
jmp 0x10023cac
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 0x10]
inc edi
cmp dword [edi*4 + 0x100c2ac0], 0
mov dword [ebp - 0x10], edi
lea esi, [edi*4 + 0x100c2ac0]
jne 0x10023b10
test eax, eax
je 0x10023ddf
push str.CERT
push 1
push eax
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x10023dd6
push esi
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x10023dd6
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x10023dd6
push esi
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push ebx
push 0x100ae5dc
push 0xba
push dword [0x100c5ca8]
mov esi, eax
call sym.dopuslib32.dll_Ordinal_10
push ebx
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push esi
push edi
call sym.dopuslib32.dll_Ordinal_16
add esp, 0x28
test eax, eax
je 0x10023dd6
cmp dword [ebp - 0xc], 0x90
mov edi, dword [ebp - 8]
jne 0x10023d86
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 4]
call sym.dopuslib32.dll_Ordinal_15
add esp, 8
lea edx, [edi + 0x58]
lea ecx, [ebp - 0x28]
lea esi, [ebx + 0xc]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10023d86
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10023d70
mov ebx, 1
test edi, edi
je 0x10023d91
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
test ebx, ebx
je 0x10023dd6
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
test edx, edx
jne 0x10023daa
test ecx, ecx
jne 0x10023daa
test eax, eax
je 0x10023dcc
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push ecx
push edx
push 0
push 0
push dword [ebp - 0x18]
call sym.dopuslib32.dll_Ordinal_52
add esp, 0x38
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret