Function at 0x431a70
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x4d9694]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, 4
push esi
push edi
test ebx, ebx
mov dword [ebp - 0x38], ebx
lea edi, [ebx - 0x2c]
cmove edi, eax
push 0xe801
mov dword [ebp - 0x30], edi
push dword [edi]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x431ab9
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebx]
test eax, eax
je 0x431ace
push eax
call fcn.004710ae
add esp, 4
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
push 0x4bd700
push 0xe2
mov dword [ebx + 0x14], 0xffffffff
mov dword [ebx + 0x18], 0xffffffff
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov byte [ebx + 0x1c], 0
push dword [0x4de208]
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x431cab
push esi
push dword [0x4de208]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x431cab
push esi
push dword [0x4de208]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
shr eax, 1
mov dword [ebp - 0x40], eax
cmp eax, 1
jbe 0x431cab
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push eax
push dword [edi]
movups xmmword [ebp - 0x14], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push dword [ebp - 0x34]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov dword [ebx + 0x10], eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
cmp word [edi], 0
jne 0x431c9b
mov eax, dword [ebp - 0x30]
push 5
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
mov dword [ebp - 0x3c], 0
add edi, 6
nop dword [eax]
test esi, esi
je 0x431c9b
mov ah, byte [edi - 4]
test ah, ah
js 0x431bc4
cmp ah, 0x64
jle 0x431bc7
or ah, 0xff
mov dl, byte [edi - 2]
test dl, dl
js 0x431bd3
cmp dl, 0x64
jle 0x431bd6
or dl, 0xff
mov cl, byte [edi]
test cl, cl
js 0x431be1
cmp cl, 0x64
jle 0x431be4
or cl, 0xff
mov al, byte [edi + 2]
test al, al
js 0x431bef
cmp al, 0x64
jle 0x431bf1
or al, 0xff
cmp ah, 0xff
je 0x431c08
cmp dl, 0xff
je 0x431c08
cmp cl, 0xff
je 0x431c08
cmp al, 0xff
je 0x431c08
mov ch, 1
jmp 0x431c0a
xor ch, ch
test ah, ah
jne 0x431c1e
test dl, dl
jne 0x431c1e
test cl, cl
jne 0x431c1e
test al, al
jne 0x431c1e
xor bl, bl
jmp 0x431c20
mov bl, 1
test ch, ch
je 0x431c78
test bl, bl
je 0x431c78
mov byte [ebp - 0x28], ah
xorps xmm0, xmm0
mov byte [ebp - 0x25], al
lea eax, [ebp - 0x24]
push eax
push esi
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x27], dl
mov byte [ebp - 0x26], cl
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebx, dword [ebp - 0x30]
lea eax, [ebp - 0x24]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x431c68
lea eax, [ebp - 0x1c]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ebx, dword [ebp - 0x38]
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004318a0
jmp 0x431c7b
mov ebx, dword [ebp - 0x38]
push 2
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
add edi, 8
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebp - 0x40]
jl 0x431bb0
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 0x34], 0
cmp byte [ebp + 8], 0
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
mov esi, dword [ebp - 0x30]
je 0x431d78
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push eax
push dword [esi]
movups xmmword [ebp - 0x14], xmm0
call edi
push 0xe801
push dword [esi]
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x431ce5
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
sub edx, esi
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
sub eax, ecx
push 0
push dword [0x4de204]
push 0xe801
push dword [edi]
push edx
push eax
push esi
push ecx
push 0x5400001c
push 0
push str.SCROLLBAR
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x431d75
lea ecx, [ebp - 0x24]
mov byte [ebx + 0x1c], 1
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x2c], eax
push eax
mov dword [ebp - 0x28], 0x6464
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov esi, dword [ebp - 0x30]
lea eax, [ebp - 0x24]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x431d68
lea eax, [ebp - 0x1c]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004318a0
jmp 0x431d78
mov esi, dword [ebp - 0x30]
cmp byte [ebp + 0xc], 0
je 0x431db9
push 0xfffffffffffffff0
push dword [esi]
xorps xmm0, xmm0
movups xmmword [ebp - 0x14], xmm0
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea ecx, [ebp - 0x14]
and eax, 0x40000000
mov eax, dword [esi]
push ecx
push eax
je 0x431da1
call edi
jmp 0x431da7
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x431dc7
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448f14
mov esp, ebp
pop ebp
ret 8