Function at 0x10037210
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x1003f6e4]
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.10032980
cmp ax, 1
jne case.default.0x100374e2
cmp dword [ebp - 0x88], 8
jne case.default.0x100374e2
mov esi, dword [ebp - 0x84]
push 8
lea eax, [edi + esi*2]
push eax
push 0x10003d2c
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x100374e2
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.10032980
movzx eax, ax
test ax, ax
je 0x100374c3
jmp 0x100372f0
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x88]
cmp ax, 1
jne case.default.0x10037312
lea eax, [esi - 3]
cmp eax, 3
ja case.default.0x10037312
jmp dword [eax*4 + 0x100379e8]
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047a4
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10037312
mov eax, dword [ebp - 0x94]
mov ecx, 0xf
mov word [eax], cx
jmp case.default.0x10037312
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047ac
mov dword [ebp - 0x9c], eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10037383
mov eax, dword [ebp - 0x94]
mov ecx, 0xd
mov word [eax], cx
jmp case.default.0x10037312
push esi
push dword [ebp - 0x9c]
push 0x100047b8
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10037312
mov ecx, dword [ebp - 0x94]
cmp word [ecx], ax
setne al
lea eax, [eax*4 + 0x10]
jmp 0x10037488
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047c4
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10037312
mov ecx, dword [ebp - 0x94]
movsx eax, word [ecx]
neg eax
sbb eax, eax
and eax, 5
add eax, 0xe
jmp 0x10037488
mov eax, dword [ebp - 0x8c]
push esi
lea eax, [eax + edi*2]
push eax
push 0x100047d0
mov dword [ebp - 0x9c], eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x1003743d
mov ecx, dword [ebp - 0x94]
movzx eax, word [ecx]
test ax, ax
jne 0x10037429
mov eax, 0x11
jmp 0x10037488
cmp ax, 0xf
jne 0x10037436
mov eax, 0x15
jmp 0x10037488
mov eax, 0x17
jmp 0x10037488
push esi
push dword [ebp - 0x9c]
push 0x100047e0
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne case.default.0x10037312
mov ecx, dword [ebp - 0x94]
movzx eax, word [ecx]
test ax, ax
jne 0x1003746b
mov eax, 0x12
jmp 0x10037488
cmp ax, 0xf
jne 0x10037478
mov eax, 0x16
jmp 0x10037488
cmp ax, 0x10
mov eax, 0x18
je 0x10037488
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.10032980
movzx eax, ax
test ax, ax
jne 0x100372f0
mov eax, dword [ebp - 0x94]
movzx ecx, word [eax]
movsx eax, cx
add eax, 0xfffffff3
cmp eax, 0xc
ja case.default.0x100374e2
movzx eax, byte [eax + 0x10037a08]
jmp dword [eax*4 + 0x100379f8]
mov eax, 8
jmp 0x10037503
mov eax, 0xc
jmp 0x10037503
mov eax, 0x10
jmp 0x10037503
mov eax, 0x14
mov edx, dword [ebp - 0x98]
xor ebx, ebx
mov esi, dword [0x10041578]
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 0x10037582
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 0x10037560
cmp byte [eax + edx], bl
jne 0x10037560
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 0x10037884
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.10032980
cmp byte [esi], 0xc
movzx edx, ax
jne 0x100376a9
mov ebx, dword [ebp - 0x84]
movzx ecx, word [edi + ebx*2]
movzx eax, byte [esi + 1]
cmp cx, ax
jne 0x10037691
cmp ecx, 0x2d
jne 0x10037619
mov eax, dword [ebp - 0x98]
mov ecx, 1
mov word [eax + 4], cx
jmp 0x1003764f
cmp ecx, 0x28
jne 0x1003762a
mov dword [ebp - 0xa4], 1
jmp 0x1003764f
cmp ecx, 0x2e
jne 0x1003763b
mov dword [ebp - 0xa8], 1
jmp 0x1003764f
cmp ecx, 0x2c
jne 0x1003764f
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.10032980
mov ebx, dword [ebp - 0x84]
movzx edx, ax
jmp 0x1003769a
movzx eax, byte [esi + 2]
add esi, 2
add esi, eax
cmp byte [esi], 0xc
je 0x100375f2
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 0x84]
test dx, dx
je 0x1003787e
cmp dx, 1
jne 0x100376db
mov eax, dword [ebp - 0x90]
cmp word [eax + edi*2], 0x27
jne 0x100376db
mov ebx, 1
mov dword [ebp - 0x88], ebx
lea edx, [ebx + 2]
jmp 0x100376e1
mov ebx, dword [ebp - 0x88]
mov cl, byte [esi]
inc esi
movzx eax, cl
cmp ax, dx
je 0x1003770f
cmp cl, 1
jne case.default.0x100374e2
cmp dx, 2
je 0x10037719
pop edi
pop esi
mov eax, 0x84
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003a750
mov esp, ebp
pop ebp
ret 0xc
cmp dx, 2
jne 0x100377cc
mov cl, byte [esi]
test cl, cl
jle 0x10037728
movzx eax, cl
cmp ebx, eax
jne case.default.0x100374e2
test cl, cl
jns 0x10037736
movsx ecx, cl
neg ecx
movsx eax, bl
cmp eax, ecx
jg case.default.0x100374e2
mov edi, 0x1e
cmp ebx, 0x1e
jg 0x10037742
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 0x10037794
lea ecx, [ebx*4]
mov edx, 0x10004824
sub edx, ecx
imul eax, dword [edx]
xor ecx, ecx
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xa4], 0
je 0x100377b5
mov ecx, dword [ebp - 0x8c]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x8c], ecx
inc esi
jmp 0x1003786e
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0xac], ecx
inc esi
jmp 0x1003786e
cmp dx, 3
jne 0x100377fa
mov eax, dword [ebp - 0x90]
movzx ecx, word [eax + edi*2]
movzx eax, byte [esi]
cmp cx, ax
jne case.default.0x100374e2
xor eax, eax
inc esi
cmp ecx, 0x29
sete al
dec eax
and dword [ebp - 0xa4], eax
jmp 0x1003786e
cmp dx, 1
jne 0x1003786e
movzx eax, byte [esi]
cmp ebx, eax
jne case.default.0x100374e2
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.0x100374e2
cmp ebx, 2
jne 0x10037868
push ebx
push edi
push 0x100047f0
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10037868
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]
je 0x10037884
jmp 0x100375a0
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 0x100378c5
lea ecx, [ecx]
movzx eax, word [esi]
push 8
push eax
call dword [sym.imp.msvcrt.dll_iswctype]
add esp, 8
test eax, eax
je 0x100378bd
add esi, 2
sub ebx, 1
jne 0x100378a0
jmp 0x100378c5
test ebx, ebx
jne case.default.0x100374e2
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax]
cmp ax, 9
jg case.default.0x100374e2
movsx ecx, ax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
cmp eax, dword [ecx*4 + 0x10004800]
jae case.default.0x100374e2
mov eax, dword [ebp - 0x94]
movzx eax, word [eax]
cmp ax, 0x13
jne 0x10037910
mov ebx, dword [ebp - 0x98]
cmp dword [ebx + 0xc], 0xb
jbe 0x10037977
jmp case.default.0x100374e2
cmp ax, 0x14
je 0x10037922
cmp ax, 0x15
je 0x10037922
cmp ax, 0x16
jne 0x10037933
mov ebx, dword [ebp - 0x98]
cmp dword [ebx + 0xc], 0x17
jbe 0x10037939
jmp case.default.0x100374e2
mov ebx, dword [ebp - 0x98]
cmp ax, 0x15
je 0x10037951
cmp ax, 0x16
je 0x10037951
cmp ax, 0x17
je 0x10037951
cmp ax, 0x18
jne 0x1003795b
cmp dword [ebx + 0x10], 0x3b
ja case.default.0x100374e2
cmp ax, 0x16
je 0x1003796d
cmp ax, 0x18
je 0x1003796d
cmp ax, 0x19
jne 0x10037977
cmp dword [ebx + 0x14], 0x3b
ja case.default.0x100374e2
cwde
add eax, 0xffffffee
cmp eax, 7
ja case.0x10037987.19
movzx eax, byte [eax + 0x10037a20]
jmp dword [eax*4 + 0x10037a18]
movzx eax, word [ebx + 0x1e]
cmp ax, 9
jg case.default.0x100374e2
mov ecx, dword [ebx + 0x18]
mov esi, 0x10004824
cwde
xor edx, edx
shl eax, 2
sub esi, eax
mov eax, ecx
div dword [esi]
test edx, edx
je case.0x10037987.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.1003a750
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.1003a750
mov esp, ebp
pop ebp
ret 0xc