Function at 0x447c40
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x495ec8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], esi
mov dword [esi + 8], ebx
mov eax, dword [ebp + 8]
mov dword [esi], 0x49a628
mov dword [esi + 0x28], eax
mov dword [esi + 0x268], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x240], ebx
mov dword [esi + 0x244], ebx
mov al, byte [0x528cfc]
mov dword [ebp - 4], ebx
cmp al, bl
mov byte [ebp - 4], 1
je 0x447cd7
fld dword [0x528ce0]
fcomp dword [0x49a1d0]
fnstsw ax
test ah, 0x44
jnp 0x447cd7
mov dword [esi + 0x3c], 1
mov dword [esi + 0x24c], 0x100
mov al, byte [0x528bba]
cmp al, bl
jne 0x447cf7
cmp byte [esi + 4], 2
je 0x447cf7
mov eax, 8
jmp 0x447cf9
xor eax, eax
mov ecx, 0x78
mov dword [esi + 0x254], pe_nt_image_headers32
sub ecx, eax
mov dword [esi + 0x25c], 0xf0
add ecx, ecx
mov dword [esi + 0x258], 0x220
mov dword [esi + 0x250], ecx
mov al, byte [0x528bba]
cmp al, bl
jne 0x447d3c
cmp byte [esi + 4], 2
je 0x447d3c
mov eax, 8
jmp 0x447d3e
xor eax, eax
push 0x428
mov dword [esi + 0x260], eax
mov dword [esi + 0x264], 8
call fcn.0048c04b
add esp, 4
cmp eax, ebx
mov dword [esi + 0xc], eax
jne 0x447d77
lea edx, [ebp - 0x14]
push 0x49c69c
push edx
mov dword [ebp - 0x14], str.Out_of_memory_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
push 0x404
call fcn.0048c04b
add esp, 4
cmp eax, ebx
mov dword [esi + 0x10], eax
jne 0x447da0
lea eax, [ebp - 0x18]
push 0x49c69c
push eax
mov dword [ebp - 0x18], str.Out_of_memory_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
mov edi, dword [esi + 0xc]
mov ecx, 0xa
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0xc]
mov eax, 0xf0
mov dword [ecx], 0x28
mov edx, dword [esi + 0xc]
mov dword [edx + 4], 0x220
mov ecx, dword [esi + 0xc]
cdq
xor eax, edx
sub eax, edx
add eax, eax
neg eax
mov dword [ecx + 8], eax
mov edx, dword [esi + 0xc]
xor eax, eax
mov word [edx + 0xc], 1
mov ecx, dword [esi + 0x3c]
cmp ecx, ebx
mov ecx, dword [esi + 0xc]
setne al
lea eax, [eax*8 + 8]
mov word [ecx + 0xe], ax
mov edx, dword [esi + 0xc]
mov dword [edx + 0x10], ebx
mov eax, dword [esi + 0xc]
mov dword [eax + 0x14], ebx
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x18], ebx
mov edx, dword [esi + 0xc]
mov dword [edx + 0x1c], ebx
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0xc]
neg eax
sbb eax, eax
xor al, al
add eax, 0x100
mov dword [ecx + 0x20], eax
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0xc]
neg edx
sbb edx, edx
xor dl, dl
add edx, 0x100
mov dword [eax + 0x24], edx
mov ecx, dword [esi + 0x10]
xor eax, eax
mov word [ecx], 0x300
mov edx, dword [esi + 0x10]
mov word [edx + 2], 0x100
mov ecx, dword [esi + 0x10]
cmp eax, 0x100
jge 0x447ea0
mov byte [ecx + eax*4 + 4], bl
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 5], bl
mov ecx, dword [esi + 0x10]
mov byte [ecx + eax*4 + 6], bl
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 7], 4
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov cl, byte [ecx + eax*4 + 4]
mov byte [edx + eax*4 + 0x2a], cl
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov dl, byte [edx + eax*4 + 5]
mov byte [ecx + eax*4 + 0x29], dl
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov cl, byte [ecx + eax*4 + 6]
mov byte [edx + eax*4 + 0x28], cl
mov edx, dword [esi + 0xc]
mov byte [edx + eax*4 + 0x2b], bl
inc eax
jmp 0x447e48
mov al, 0xff
mov byte [ecx + 0x400], al
mov edx, dword [esi + 0x10]
mov byte [edx + 0x401], al
mov ecx, dword [esi + 0x10]
mov byte [ecx + 0x402], al
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov cl, byte [edx + 0x400]
mov byte [eax + 0x426], cl
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov cl, byte [edx + 0x401]
mov byte [eax + 0x425], cl
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov cl, byte [edx + 0x402]
mov byte [eax + 0x424], cl
xor eax, eax
cmp eax, 0xa
jge 0x447f45
mov edx, dword [esi + 0x10]
mov cl, al
sub cl, 0xa
mov byte [edx + eax*4 + 4], al
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 0x3dc], cl
mov ecx, dword [esi + 0x10]
mov byte [ecx + eax*4 + 0x3de], bl
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 0x3dd], bl
mov ecx, dword [esi + 0x10]
mov byte [ecx + eax*4 + 6], bl
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 5], bl
mov ecx, dword [esi + 0x10]
mov byte [ecx + eax*4 + 0x3df], 2
mov edx, dword [esi + 0x10]
mov byte [edx + eax*4 + 7], 2
inc eax
jmp 0x447ef2
mov eax, dword [esi + 0x28]
push eax
call dword [sym.imp.USER32.dll_GetDC]
cmp eax, ebx
mov dword [esi + 0x14], eax
jne 0x447f6b
lea ecx, [ebp - 0x1c]
push 0x49c69c
push ecx
mov dword [ebp - 0x1c], str.GetDC_failed_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
cmp dword [esi + 0x3c], ebx
jne 0x447fef
mov edx, dword [esi + 0x10]
push edx
call dword [sym.imp.GDI32.dll_CreatePalette]
cmp eax, ebx
mov dword [esi + 0x1c], eax
jne 0x447f96
lea eax, [ebp - 0x20]
push 0x49c69c
push eax
mov dword [ebp - 0x20], str.CreatePalette_failed_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
mov ecx, dword [esi + 0x14]
push ebx
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectPalette]
cmp eax, ebx
mov dword [esi + 0x20], eax
jne 0x447fbe
lea edx, [ebp - 0x24]
push 0x49c69c
push edx
mov dword [ebp - 0x24], str.SelectPalette_failed_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
mov eax, dword [esi + 0x14]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
cmp eax, 0xffffffff
jne 0x447fe2
lea ecx, [ebp - 0x28]
push 0x49c69c
push ecx
mov dword [ebp - 0x28], str.RealizePalette_failed_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esi + 0x1c], ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
push ebx
lea eax, [esi + 0x30]
push ebx
push eax
push ebx
push ecx
push edx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
cmp eax, ebx
mov dword [esi + 0x2c], eax
jne 0x448020
lea eax, [ebp - 0x2c]
push 0x49c69c
push eax
mov dword [ebp - 0x2c], str.CreateDIBSection_failed_in_win32_windowed_NES_screen_mgr::win32_windowed_NES_screen_mgr
call fcn.0048b19d
cmp dword [esi + 0x3c], ebx
je 0x4480c7
push 0x22b
call fcn.00452e70
mov ecx, dword [esi + 0x254]
mov edx, dword [esi + 0x25c]
add ecx, 4
add edx, 4
imul ecx, edx
add esp, 4
add ecx, ecx
push ecx
call fcn.0048ac32
mov dword [esi + 0x240], eax
mov eax, dword [esi + 0x25c]
mov ecx, eax
imul ecx, eax
shl ecx, 2
push ecx
call fcn.0048ac32
mov dword [esi + 0x244], eax
mov eax, dword [esi + 0xc]
lea edx, [esi + 0x40]
add eax, 0x28
push edx
push eax
call fcn.0045dc90
xor eax, eax
add esp, 0x10
mov al, byte [0x528cfe]
cmp eax, 3
ja case.0x448092.0
jmp dword [eax*4 + 0x4481ac]
mov dword [esi + 0x248], 0x452ef0
jmp 0x4480c7
mov dword [esi + 0x248], 0x453500
jmp 0x4480c7
mov dword [esi + 0x248], 0x454000
jmp 0x4480c7
mov dword [esi + 0x248], 0x453ba0
mov eax, dword [esi + 0x14]
cmp eax, ebx
je 0x4480dc
mov ecx, dword [esi + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [esi + 0x14], ebx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4