Function at 0x436850
Capabilities:
Enumerate pe sections
Extract resource via kernel32 functions

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x459fc6
push eax
mov dword fs:[0], esp
sub esp, 0x148
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0xc0], ebx
jne 0x436882
xor eax, eax
jmp 0x436cc9
call fcn.004561ef
mov edi, dword [eax + 0xc]
xor eax, eax
mov ax, word [esi + 0xc0]
push 0xf1
push eax
push edi
mov dword [esp + 0x40], edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebx
jne 0x4368af
xor eax, eax
jmp 0x436cc9
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
jne 0x4368c2
xor eax, eax
jmp 0x436cc9
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
cmp edi, ebx
jne 0x4368d6
xor eax, eax
jmp 0x436cc9
xor ecx, ecx
mov cx, word [edi + 6]
shl ecx, 2
push ecx
call fcn.00447e47
add esp, 4
cmp word [edi + 6], bx
mov ebp, eax
mov dword [esp + 0x10], ebx
jbe 0x43691c
mov ecx, ebp
lea eax, [edi + 8]
xor edx, edx
add ecx, 4
mov dx, word [eax]
add eax, 2
mov dword [ecx - 4], edx
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
xor edx, edx
mov dx, word [edi + 6]
cmp dword [esp + 0x10], edx
jl 0x4368f9
xor eax, eax
mov ecx, esi
mov ax, word [edi + 6]
push eax
push ebp
call fcn.0045790b
push ebp
mov dword [esp + 0x1c], eax
call fcn.00447e70
mov eax, dword [esp + 0x1c]
add esp, 4
cmp eax, ebx
je 0x436972
xor eax, eax
xor ecx, ecx
mov ax, word [edi + 4]
mov cx, word [edi + 2]
push eax
push ecx
lea edx, [eax + 7]
lea edi, [ecx + 7]
push edx
push edi
mov ecx, esi
call fcn.00457798
xor ecx, ecx
mov cx, word [esi + 0xc0]
push ecx
mov ecx, esi
call fcn.0045781f
cmp eax, ebx
jne 0x436979
xor eax, eax
jmp 0x436cc9
mov edx, dword [esi + 0x1c]
push ebx
push ebx
push 0x418
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xbc]
push eax
call fcn.00447e70
mov edi, dword [esi + 0x9c]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
shl eax, 2
push eax
call fcn.00447e47
mov edx, eax
add esp, 8
cmp edx, ebx
je 0x4369dd
dec edi
cmp edi, ebx
jl 0x4369df
lea eax, [edi + edi*4 + 5]
mov edi, edx
lea ecx, [eax + eax*4]
xor eax, eax
shl ecx, 2
mov ebp, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebp
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x4369df
xor edx, edx
mov eax, dword [esi + 0x9c]
mov dword [esi + 0xbc], edx
cmp eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
jle 0x436c22
xor ebp, ebp
jmp 0x436a01
xor ebx, ebx
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.004517f0
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x38]
lea edx, [esp + 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x1c]
push edx
push eax
push 0x441
push ecx
mov dword [esp + 0x48], 0x20
mov dword [esp + 0x4c], 0xc
call dword [sym.imp.USER32.dll_SendMessageA]
mov dl, byte [0x46dd5c]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x59]
mov byte [esp + 0x58], dl
mov edx, dword [esp + 0x34]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
push pe_nt_image_headers32
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x5c]
mov dword [esp + 0x1c], ebx
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x58]
push 0x469f2c
push eax
call fcn.00439145
push 0x469f2c
push ebx
call fcn.00439145
push 0x469f2c
push ebx
mov dword [esp + 0x40], eax
call fcn.00439145
push 0x469f2c
push ebx
mov edi, eax
call fcn.00439145
add esp, 0x20
mov ebx, eax
test edi, edi
je 0x436b14
push 0x48
push edi
call fcn.00437a80
add esp, 8
test eax, eax
je 0x436aec
mov dword [esp + 0x18], 1
push 0x44
push edi
call fcn.00437a80
add esp, 8
test eax, eax
je 0x436b00
or byte [esp + 0x49], 8
push 0x52
push edi
call fcn.00437a80
add esp, 8
test eax, eax
je 0x436b14
or byte [esp + 0x49], 6
mov edi, dword [esp + 0x28]
test ebx, ebx
jne 0x436b1e
mov ebx, edi
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0x38]
mov dword [esp + 0x3c], 0xc
push ecx
push edx
push 0x442
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test ebx, ebx
je 0x436b5a
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x436b5a
mov ecx, dword [esp + 0x10]
push ebx
push ecx
mov ecx, esi
call fcn.004518f7
mov edx, dword [esi + 0xbc]
mov eax, dword [esp + 0x1c]
mov dword [edx + ebp], eax
mov ecx, dword [esi + 0xbc]
mov edx, dword [esp + 0x14]
mov dword [ecx + ebp + 4], edx
mov eax, dword [esi + 0xbc]
mov byte [eax + ebp + 8], 4
mov ecx, dword [esi + 0xbc]
mov dl, byte [esp + 0x49]
xor eax, eax
mov byte [ecx + ebp + 9], dl
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov ecx, dword [esi + 0xbc]
setne al
mov dword [ecx + ebp + 0xc], eax
mov edx, dword [esi + 0xbc]
test edi, edi
mov dword [edx + ebp + 0x10], 0
je 0x436bcb
mov eax, dword [esi + 0xbc]
push 0x28
push edi
lea ecx, [eax + ebp + 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x436bd6
mov edx, dword [esi + 0xbc]
mov byte [edx + ebp + 0x3c], 0
test ebx, ebx
je 0x436bf0
mov eax, dword [esi + 0xbc]
push 0x28
push ebx
lea ecx, [eax + ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x436bfb
mov edx, dword [esi + 0xbc]
mov byte [edx + ebp + 0x14], 0
test byte [esp + 0x49], 1
jne 0x436c06
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x9c]
inc eax
add ebp, 0x64
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4369ff
xor ebx, ebx
mov edi, dword [esi + 0x9c]
dec edi
cmp edi, ebx
jle 0x436c5c
lea eax, [edi + edi*4]
lea ebp, [eax + eax*4]
shl ebp, 2
mov eax, dword [esi + 0xbc]
test byte [eax + ebp + 0xc], 1
je 0x436c54
mov ecx, dword [esi + 0x1c]
push ebx
push edi
push 0x416
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
dec edi
sub ebp, 0x64
cmp edi, ebx
jg 0x436c36
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], 0x45d5b4
push 0x11
mov dword [esp + 0x164], ebx
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
call fcn.0044e622
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x20]
mov edx, dword [esi + 0x1c]
push 1
neg eax
sbb eax, eax
and eax, ebx
push eax
push 0x30
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
call fcn.00436d00
mov ecx, esi
call fcn.00437020
mov dword [esp + 0x20], vtable.CGdiObject.0
lea ecx, [esp + 0x20]
mov dword [esp + 0x160], 1
call fcn.0044e68e
mov eax, 1
mov ecx, dword [esp + 0x158]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x154
ret