Function at 0x10038a40
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x100416e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x98], eax
xor eax, eax
push esi
mov word [edx], ax
lea eax, [ebp - 0x88]
push edi
mov edi, dword [ebp + 8]
push eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xa8], ecx
mov edx, ebx
push eax
mov ecx, edi
mov dword [ebp - 0xa4], 0
call fcn.10033900
cmp ax, 1
jne case.default.0x10038d12
cmp dword [ebp - 0x88], 8
jne case.default.0x10038d12
mov esi, dword [ebp - 0x84]
push 8
lea eax, [edi + esi*2]
push eax
push 0x10003d14
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038d12
lea ecx, [ebp - 0x88]
sub ebx, esi
push ecx
lea eax, [esi + 8]
sub ebx, 8
lea eax, [edi + eax*2]
mov dword [ebp - 0xa0], ebx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x8c], eax
push ecx
mov edx, ebx
mov dword [ebp - 0x90], eax
mov ecx, eax
call fcn.10033900
movzx eax, ax
test ax, ax
je 0x10038cf3
jmp 0x10038b20
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x88]
cmp ax, 1
jne case.default.0x10038b42
lea eax, [esi - 3]
cmp eax, 3
ja case.default.0x10038b42
jmp dword [eax*4 + 0x10039214]
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x1000478c
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038b42
mov eax, dword [ebp - 0x94]
mov ecx, 0xf
mov word [eax], cx
jmp case.default.0x10038b42
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x10004794
mov dword [ebp - 0x9c], eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10038bb3
mov eax, dword [ebp - 0x94]
mov ecx, 0xd
mov word [eax], cx
jmp case.default.0x10038b42
push esi
push dword [ebp - 0x9c]
push 0x100047a0
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038b42
mov ecx, dword [ebp - 0x94]
cmp word [ecx], ax
setne al
lea eax, [eax*4 + 0x10]
jmp 0x10038cb8
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047ac
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038b42
mov ecx, dword [ebp - 0x94]
movsx eax, word [ecx]
neg eax
sbb eax, eax
and eax, 5
add eax, 0xe
jmp 0x10038cb8
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047b8
mov dword [ebp - 0x9c], eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10038c6d
mov ecx, dword [ebp - 0x94]
movzx eax, word [ecx]
test ax, ax
jne 0x10038c59
mov eax, 0x11
jmp 0x10038cb8
cmp ax, 0xf
jne 0x10038c66
mov eax, 0x15
jmp 0x10038cb8
mov eax, 0x17
jmp 0x10038cb8
push esi
push dword [ebp - 0x9c]
push 0x100047c8
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038b42
mov ecx, dword [ebp - 0x94]
movzx eax, word [ecx]
test ax, ax
jne 0x10038c9b
mov eax, 0x12
jmp 0x10038cb8
cmp ax, 0xf
jne 0x10038ca8
mov eax, 0x16
jmp 0x10038cb8
cmp ax, 0x10
mov eax, 0x18
je 0x10038cb8
mov eax, 0x19
mov word [ecx], ax
mov ecx, dword [ebp - 0x8c]
lea eax, [edi + esi]
lea ecx, [ecx + eax*2]
lea eax, [edi + esi]
mov dword [ebp - 0x8c], ecx
sub ebx, eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x84]
mov edx, ebx
push eax
call fcn.10033900
movzx eax, ax
test ax, ax
jne 0x10038b20
mov eax, dword [ebp - 0x94]
movzx ecx, word [eax]
movsx eax, cx
add eax, 0xfffffff3
cmp eax, 0xc
ja case.default.0x10038d12
movzx eax, byte [eax + 0x10039234]
jmp dword [eax*4 + 0x10039224]
mov eax, 8
jmp 0x10038d33
mov eax, 0xc
jmp 0x10038d33
mov eax, 0x10
jmp 0x10038d33
mov eax, 0x14
mov edx, dword [ebp - 0x98]
xor ebx, ebx
mov esi, dword [0x10043518]
add eax, edx
mov dword [ebp - 0x9c], eax
xor edi, edi
push 0xa
lea eax, [edx + 0x1c]
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x8c], eax
lea eax, [ecx - 0xc]
movzx eax, ax
push eax
push esi
mov dword [ebp - 0x84], edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x10038db2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
xor edx, edx
lea ecx, [ecx]
mov cl, byte [eax + edx]
inc edx
test cl, cl
jne 0x10038d90
cmp byte [eax + edx], bl
jne 0x10038d90
push edx
push eax
lea eax, [ebp - 0x80]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
lea esi, [ebp - 0x80]
cmp byte [ebp - 0x80], bl
je 0x100390b5
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xac], eax
lea ebx, [ebx]
mov ecx, dword [ebp - 0x90]
lea eax, [edi + ebx]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x90], ecx
lea eax, [edi + ebx]
mov ecx, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x90]
sub ecx, eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0xa0], ecx
push eax
lea eax, [ebp - 0x84]
mov edx, ecx
push eax
mov ecx, edi
call fcn.10033900
cmp byte [esi], 0xc
movzx edx, ax
jne 0x10038ed9
mov ebx, dword [ebp - 0x84]
movzx ecx, word [edi + ebx*2]
movzx eax, byte [esi + 1]
cmp cx, ax
jne 0x10038ec1
cmp ecx, 0x2d
jne 0x10038e49
mov eax, dword [ebp - 0x98]
mov ecx, 1
mov word [eax + 4], cx
jmp 0x10038e7f
cmp ecx, 0x28
jne 0x10038e5a
mov dword [ebp - 0xa4], 1
jmp 0x10038e7f
cmp ecx, 0x2e
jne 0x10038e6b
mov dword [ebp - 0xa8], 1
jmp 0x10038e7f
cmp ecx, 0x2c
jne 0x10038e7f
mov eax, dword [ebp - 0x98]
add eax, 0x1e
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x88]
add esi, 3
lea eax, [ebx + ecx]
lea edi, [edi + eax*2]
lea eax, [ebx + ecx]
mov ecx, dword [ebp - 0xa0]
sub ecx, eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0xa0], ecx
mov edx, ecx
mov ecx, edi
push eax
call fcn.10033900
mov ebx, dword [ebp - 0x84]
movzx edx, ax
jmp 0x10038eca
movzx eax, byte [esi + 2]
add esi, 2
add esi, eax
cmp byte [esi], 0xc
je 0x10038e22
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 0x84]
test dx, dx
je 0x100390af
cmp dx, 1
jne 0x10038f0b
mov eax, dword [ebp - 0x90]
cmp word [eax + edi*2], 0x27
jne 0x10038f0b
mov ebx, 1
mov dword [ebp - 0x88], ebx
lea edx, [ebx + 2]
jmp 0x10038f11
mov ebx, dword [ebp - 0x88]
mov cl, byte [esi]
inc esi
movzx eax, cl
cmp ax, dx
je 0x10038f3f
cmp cl, 1
jne case.default.0x10038d12
cmp dx, 2
je 0x10038f49
pop edi
pop esi
mov eax, 0x84
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003c3b0
mov esp, ebp
pop ebp
ret 0xc
cmp dx, 2
jne 0x10038ffc
mov cl, byte [esi]
test cl, cl
jle 0x10038f58
movzx eax, cl
cmp ebx, eax
jne case.default.0x10038d12
test cl, cl
jns 0x10038f66
movsx ecx, cl
neg ecx
movsx eax, bl
cmp eax, ecx
jg case.default.0x10038d12
mov edi, 0x1e
cmp ebx, 0x1e
jg 0x10038f72
mov edi, ebx
mov ecx, dword [ebp - 0x90]
add edi, edi
mov eax, dword [ebp - 0x84]
push edi
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.msvcrt.dll_memcpy
xor eax, eax
mov word [ebp + edi - 0x40], ax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.msvcrt.dll__wtol]
add esp, 0x10
cmp dword [ebp - 0xa8], 0
je 0x10038fc4
lea ecx, [ebx*4]
mov edx, 0x1000480c
sub edx, ecx
imul eax, dword [edx]
xor ecx, ecx
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xa4], 0
je 0x10038fe5
mov ecx, dword [ebp - 0x8c]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x8c], ecx
inc esi
jmp 0x1003909e
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0xac], ecx
inc esi
jmp 0x1003909e
cmp dx, 3
jne 0x1003902a
mov eax, dword [ebp - 0x90]
movzx ecx, word [eax + edi*2]
movzx eax, byte [esi]
cmp cx, ax
jne case.default.0x10038d12
xor eax, eax
inc esi
cmp ecx, 0x29
sete al
dec eax
and dword [ebp - 0xa4], eax
jmp 0x1003909e
cmp dx, 1
jne 0x1003909e
movzx eax, byte [esi]
cmp ebx, eax
jne case.default.0x10038d12
push 0x1e
lea eax, [ebp - 0x40]
push eax
push ebx
lea eax, [esi + 1]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x90]
push ebx
lea edi, [eax + edi*2]
lea eax, [ebp - 0x40]
push edi
push eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10038d12
cmp ebx, 2
jne 0x10039098
push ebx
push edi
push 0x100047d8
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10039098
mov eax, dword [ebp - 0x98]
add eax, 0x1e
mov dword [ebp - 0x8c], eax
movzx eax, byte [esi]
inc esi
add esi, eax
cmp byte [esi], 0
mov edi, dword [ebp - 0x84]
jne 0x10038dd0
jmp 0x100390b5
mov ebx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
lea eax, [edi + ebx]
lea esi, [ecx + eax*2]
lea eax, [edi + ebx]
mov ebx, dword [ebp - 0xa0]
sub ebx, eax
je 0x100390ef
mov edi, edi
movzx eax, word [esi]
push 8
push eax
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je case.default.0x10038d12
add esi, 2
sub ebx, 1
jne 0x100390d0
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax]
cmp ax, 9
jg case.default.0x10038d12
movsx ecx, ax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
cmp eax, dword [ecx*4 + 0x100047e8]
jae case.default.0x10038d12
mov eax, dword [ebp - 0x94]
movzx eax, word [eax]
cmp ax, 0x13
jne 0x1003913a
mov ebx, dword [ebp - 0x98]
cmp dword [ebx + 0xc], 0xb
jbe 0x100391a2
jmp case.default.0x10038d12
cmp ax, 0x14
je 0x1003914c
cmp ax, 0x15
je 0x1003914c
cmp ax, 0x16
jne 0x10039164
mov ebx, dword [ebp - 0x98]
cmp dword [ebx + 0xc], 0x17
ja case.default.0x10038d12
cmp ax, 0x15
je 0x1003917c
jmp 0x1003916a
mov ebx, dword [ebp - 0x98]
cmp ax, 0x16
je 0x1003917c
cmp ax, 0x17
je 0x1003917c
cmp ax, 0x18
jne 0x10039192
cmp dword [ebx + 0x10], 0x3b
ja case.default.0x10038d12
cmp ax, 0x16
je 0x10039198
cmp ax, 0x18
je 0x10039198
cmp ax, 0x19
jne 0x100391a2
cmp dword [ebx + 0x14], 0x3b
ja case.default.0x10038d12
cwde
add eax, 0xffffffee
cmp eax, 7
ja case.0x100391b2.19
movzx eax, byte [eax + 0x1003924c]
jmp dword [eax*4 + 0x10039244]
movzx eax, word [ebx + 0x1e]
cmp ax, 9
jg case.default.0x10038d12
mov ecx, dword [ebx + 0x18]
mov esi, 0x1000480c
cwde
xor edx, edx
shl eax, 2
sub esi, eax
mov eax, ecx
div dword [esi]
test edx, edx
je case.0x100391b2.19
pop edi
sub ecx, edx
mov eax, 0xd
pop esi
mov dword [ebx + 0x18], ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003c3b0
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1003c3b0
mov esp, ebp
pop ebp
ret 0xc