Function at 0x4bfa10
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edx, dword [esp + 8]
sub esp, 0x54
mov eax, edx
and eax, 0xffff
push ebx
add eax, 0xffffb1db
push ebp
push esi
cmp eax, 0xf6
push edi
ja case.0x4bfa3a.20016
xor ecx, ecx
mov cl, byte [eax + 0x4c0000]
jmp dword [ecx*4 + 0x4bffd0]
mov eax, dword [esp + 0x68]
mov ecx, 0x10
lea edi, [esp + 0x20]
mov esi, dword [eax + 0x24]
add esi, eax
xor eax, eax
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [esp + 0x20], 0x42
mov edx, dword [esi + 0x130]
mov ecx, 1
xor eax, eax
mov dword [esp + 0x24], edx
mov word [esp + 0x3c], cx
mov word [esp + 0x38], cx
mov word [esp + 0x3a], cx
mov word [esp + 0x40], cx
mov ecx, dword [0x655ff8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov word [esp + 0x3e], ax
mov dword [esp + 0x5a], eax
lea edx, [esp + 0x20]
lea eax, [esi + 0x11c]
mov dword [esp + 0x42], ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x3c], 0x1308
mov dword [esp + 0x52], 0x4bf490
mov dword [esp + 0x4e], eax
call fcn.004bed40
mov eax, dword [esi + 0x130]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov ecx, dword [0x655ff8]
push 5
push 0x14dc
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edx, dword [0x655ff8]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edx, dword [0x655afc]
lea ecx, [esp + 0x18]
mov ebp, dword [esp + 0x68]
push 0
push ecx
push 0
push 0x483f20
push 4
push 0x65cd60
mov ebx, eax
mov eax, dword [0x65c514]
push edx
push 0x4e8c
push ebx
push ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
call fcn.0041ac10
add esp, 0x28
test eax, eax
je 0x4bfcbc
mov esi, 0x65cd8e
lea eax, [esi - 0x2e]
push str.Story_Editor_Preferences
push eax
push ebp
call fcn.00454210
mov ecx, dword [0x65c514]
push esi
push ecx
call fcn.004539d0
add esi, 0x6e
add esp, 0x14
cmp esi, 0x65cf46
jl 0x4bfb52
mov edx, dword [0x655abc]
push 5
push edx
call dword [sym.imp.USER32.dll_GetWindow]
mov edi, eax
test edi, edi
je 0x4bfcbc
jmp 0x4bfb9b
mov ebp, dword [esp + 0x68]
push edi
call fcn.004178c0
push edi
mov esi, eax
call fcn.004178c0
mov esi, dword [esi + 0x24]
add esp, 8
add esi, eax
mov eax, dword [esi + 0x130]
test eax, eax
je 0x4bfca5
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x6c], ecx
je 0x4bfca5
cmp ecx, 0xffffffff
je 0x4bfca5
mov eax, dword [0x655abc]
push 0
push 0
push 0x229
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
cmp edi, ebx
je 0x4bfc04
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4bfc0c
push ebp
mov ecx, esi
call fcn.00493f00
mov edx, dword [esi + 0x388]
push 1
push edx
mov dword [esi + 0x408], 0xffffffff
call fcn.00490a80
add esp, 4
mov ecx, esi
push eax
call fcn.00486d40
push eax
mov eax, dword [esi + 0x388]
push eax
call fcn.004952e0
add esp, 4
mov ecx, esi
push eax
call fcn.00486d60
push eax
mov ecx, esi
call fcn.004b21a0
mov cx, word [esi + 0x96]
push 2
push 1
push ecx
mov ecx, esi
lea ebp, [esi + 0x11c]
call fcn.0048fa90
mov dx, word [esi + 0x96]
push eax
push edx
mov ecx, esi
call fcn.0048f9d0
push eax
push ebp
mov ecx, esi
call fcn.004a1f70
cmp edi, ebx
je 0x4bfc91
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
je 0x4bfca5
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push 9
push ecx
push edx
push ebp
mov ecx, esi
call fcn.00494a50
push 2
push edi
call dword [sym.imp.USER32.dll_GetWindow]
mov edi, eax
test edi, edi
jne 0x4bfb97
mov ebx, dword [esp + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov esi, dword [esp + 0x68]
push esi
call fcn.00420cc0
mov ecx, dword [esi + 0x24]
add esp, 4
add ecx, esi
mov eax, dword [ecx + 0x130]
test eax, eax
je 0x4bfcff
push esi
call fcn.004b9b60
mov eax, dword [esi + 0x14]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
push 0
push esi
call fcn.004b99f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov al, byte [0x65d592]
test al, 1
jne 0x4bfd3a
mov dl, al
mov ecx, 0x65d5a8
or dl, 1
mov byte [0x65d592], dl
call fcn.00409920
push 0x4c0100
call fcn.004d763a
add esp, 4
mov esi, dword [esp + 0x68]
xor edi, edi
mov ax, word [esi + 0x36]
cmp ax, di
jne 0x4bfe3a
mov ecx, dword [0x655ff8]
push 4
mov dword [esp + 0x24], 0x20
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 4
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], edi
call dword [sym.imp.GDI32.dll_GetStockObject]
lea edx, [esp + 0x20]
mov dword [esp + 0x3c], eax
push edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0x4bf510
mov dword [esp + 0x48], str.PROMPTWINDOW
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [esi + 0x10]
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 8
push eax
call ebx
mov ecx, dword [esi + 0x10]
push 0xa
push ecx
mov ebp, eax
call ebx
push esi
mov ecx, 0x65d5a8
mov ebx, eax
call fcn.00446410
mov word [esi + 0x36], 3
mov edx, dword [0x655ff8]
push edi
push edx
push edi
push edi
push ebx
push ebp
push edi
push edi
push 0x10000000
push 0x64b0f8
push str.PROMPTWINDOW
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
push esi
push edi
push eax
mov dword [esi + 0x14], eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [esi + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetWindowDC]
push edi
push edi
push 1
push esi
mov dword [esi + 0x10], eax
call fcn.004a9430
mov dword [esi + 8], edi
mov dword [esi + 4], edi
mov eax, dword [0x65d834]
add esp, 0x10
cmp eax, edi
jne 0x4bffc6
mov ecx, dword [esi + 0x264]
pop edi
pop esi
pop ebp
mov dword [0x65d834], ecx
pop ebx
add esp, 0x54
ret
cmp ax, 3
jne 0x4bffc6
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp word [0x65d81e], di
je 0x4bfe6e
mov ecx, dword [esi + 0x14]
push 0x20
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov word [0x65d81e], di
mov edx, dword [esi + 0x14]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x655ff8]
push eax
push str.PROMPTWINDOW
call dword [sym.imp.USER32.dll_UnregisterClassA]
push 0x65d5a8
mov ecx, esi
call fcn.00446410
push edi
push edi
push 2
push esi
mov word [esi + 0x36], di
call fcn.004a9430
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov ecx, dword [0x655ab4]
push 0x138b
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x4bffc6
mov edx, dword [0x655ab4]
push 3
push 0x42c4f0
push edx
call dword [sym.imp.USER32.dll_EnumChildWindows]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov eax, dword [0x655ab4]
push 0x138c
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x4bffc6
mov ecx, dword [0x655ab4]
push 4
push 0x42c4f0
push ecx
call dword [sym.imp.USER32.dll_EnumChildWindows]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov edx, dword [esp + 0x68]
push 0x4a52b0
push 0x4a52a0
push 0
push edx
call fcn.00475f70
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov eax, 3
jmp 0x4bff53
mov eax, dword [esp + 0x68]
cmp dx, 0x4e50
jne 0x4bff65
mov eax, 2
jmp 0x4bff83
mov eax, dword [esp + 0x68]
cmp dx, 0x4e2b
jne 0x4bff77
mov eax, 6
jmp 0x4bff83
mov eax, dword [esp + 0x68]
cmp dx, 0x4eea
jne 0x4bff83
mov eax, 7
push 0
push eax
mov eax, dword [esp + 0x70]
push 1
push eax
mov ecx, dword [eax + 0x24]
add ecx, eax
call fcn.00495f60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4bffbc
mov eax, dword [ecx + 0x24]
add eax, ecx
mov esi, dword [eax + 0x130]
test esi, esi
je 0x4bffbc
lea ecx, [eax + 0x11c]
push edx
push ecx
call fcn.0048c8b0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret