Function at 0x401853
Capabilities:
Link many functions at runtime

Disassembly:
mov esi, ebx
lea eax, [0x51]
mov edi, 0x82
dec eax
mov edx, 0
push edx
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
xor eax, eax
push eax
push 0
pop eax
push eax
mov esi, 0x20204a
shl esi, 1
call dword [esi]
or eax, eax
jne 0x401440
xor ebx, ebx
add ebx, esi
sub ebx, 0x2ba
ror ebx, 1
add ebx, ebx
sub dword [0x4c30db], ebx
push eax
call fcn.0040142d
cmp ax, 0xb8f4
jle 0x401493
lea edx, [ebx + 5]
add esi, eax
add edx, esi
xor edi, ebp
mov eax, 0x26
push eax
xor ecx, ecx
push ecx
mov edx, 0xe2
mov esi, edx
push esi
mov edi, 0x14
push edi
mov dword [0x4c3365], 0
mov edi, dword [0x4c3365]
push edi
mov ecx, 9
push ecx
mov edi, dword [sym.imp.gdi32.dll_GetCharacterPlacementA]
call edi
or eax, eax
jne 0x401493
mov dword [0x4c336f], 0
mov eax, dword [0x4c336f]
push eax
mov ebx, 9
push ebx
mov edx, 0x38fb11
mov ebx, edx
mov dword [0x4c32fb], 0x745cf
add ebx, dword [0x4c32fb]
push dword [ebx]
pop dword [0x4c3013]
mov ebx, dword [0x4c3013]
call ebx
or eax, eax
jne 0x401433
leave
ret
sub edi, 1
mov edx, ebx
add esi, 1
or bl, al
add edi, 1
or ebx, 0x74
xor edx, edx
mov esi, edx
shr esi, 6
add esi, eax
sub dword [0x4c30bc], esi
mov edi, 5
push edi
mov ebx, 1
mov esi, ebx
push esi
mov ecx, 0x57fff8
mov eax, 0x17bf0c
sub ecx, eax
call dword [ecx]
or eax, eax
jne 0x4015bf
mov edx, 0xcc
mov eax, edx
push eax
mov eax, 1
mov edx, eax
push edx
mov ecx, dword [sym.imp.user32.dll_GetClassLongA]
call ecx
or eax, eax
jne 0x401433
call 0x4015ab
mov eax, ebx
cmp edi, 0x247b7ddf
je 0x40162d
sub edi, ebx
dec ebx
add ebx, eax
xor esi, dword [0x4c4324]
mov edx, eax
inc edi
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x15
pop ebx
push ebx
mov ecx, 9
push ecx
mov eax, dword [sym.imp.user32.dll_GetClassLongA]
call eax
or eax, eax
jne 0x4015bf
push 3
pop ecx
push ecx
mov eax, 9
mov edi, eax
push edi
mov ebx, 0x1fb73e
mov esi, ebx
add esi, 0x2089ae
push dword [esi]
pop dword [0x4c33d3]
mov esi, dword [0x4c33d3]
call esi
or eax, eax
jne 0x40162f
mov edi, 0xce
push edi
mov ecx, 0xf8
push ecx
mov ebx, 9
mov ecx, ebx
push ecx
mov eax, 0x3caea2
add eax, 0x3924e
mov eax, dword [eax]
call eax
inc eax
jne 0x4015c5
push eax
call 0x401620
mov edi, 0xb1
lea ebx, [2]
add ebx, edi
dec eax
mov ecx, 0
push ecx
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x55
pop ebx
push ebx
mov ebx, 0x47
mov ecx, ebx
push ecx
mov ecx, 7
mov edi, ecx
push edi
push 1
pop eax
push eax
mov edi, 0x2c11eb
mov eax, edi
mov ecx, 0x142ecd
add eax, ecx
push dword [eax]
pop dword [0x4c30ad]
mov eax, dword [0x4c30ad]
call eax
or eax, eax
jne 0x401433
push eax
call 0x4016c0
sub ebx, 2
and esi, 0xc2
add esi, 2
mov eax, esi
mov dword [0x4c331e], 0
mov edi, dword [0x4c331e]
push edi
xor ebx, ebx
push ebx
mov dword [0x4c31bd], 0
mov ecx, dword [0x4c31bd]
push ecx
mov ecx, 0
mov esi, ecx
push esi
push 0
pop edx
push edx
push 0
pop esi
push esi
mov ebx, 0x202056
shl ebx, 1
call dword [ebx]
or eax, eax
jne 0x401440
ret
sub ebx, 2
not edi
lea edi, [esi + 0xc]
lea eax, [0xe]
add eax, 1
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x27
pop edx
push edx
mov eax, 0x94
mov esi, eax
push esi
mov ebx, 5
push ebx
mov ebx, 9
mov esi, ebx
push esi
mov eax, dword [sym.imp.gdi32.dll_ColorCorrectPalette]
call eax
or eax, eax
jne 0x4015af
mov ecx, 0xd5
mov esi, ecx
push esi
mov ecx, 0x2a
push ecx
mov ecx, 7
mov esi, ecx
push esi
mov esi, 1
mov ecx, esi
push ecx
mov edx, dword [sym.imp.gdi32.dll_ColorCorrectPalette]
call edx
mov dword [0x4c33f1], eax
or eax, eax
jne 0x40184e
or di, si
inc edi
call fcn.004017cc
lea ebx, [ebx + 0x1f]
add eax, edi
xor esi, ebx
dec esi
dec esi
mov edi, 0
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push 0x83
pop esi
push esi
mov ecx, 0
push ecx
push 0xdb
pop esi
push esi
mov ebx, 0x83
push ebx
mov ebx, 9
mov edx, ebx
push edx
push 0x88ea35
pop eax
sub eax, 0x48a961
call dword [eax]
inc eax
jne 0x40162f
mov dword [0x4c31ac], 0
mov eax, dword [0x4c31ac]
push eax
mov eax, 1
mov edi, eax
push edi
mov edi, dword [sym.imp.gdi32.dll_GetRgnBox]
call edi
or eax, eax
jne 0x4017d2
push eax
call 0x401853
lea ecx, [ebx + 0x29]
sub eax, 2
mov ebx, 0x8a
xchg eax, ecx
mov edi, 6
mov ecx, 0
push ecx
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov eax, 0xa3
push eax
mov eax, 3
push eax
push 0xb2d6
pop esi
mov eax, 0x3f8da6
add esi, eax
mov esi, dword [esi]
call esi
or eax, eax
jne 0x4017e0
lea ecx, [ebx + 0x4c31c2]
add ecx, ebx
shr ecx, 1
add ecx, edi
add dword [0x4c33d1], ecx
call 0x4018cf
lea ebx, [0x56]
mov esi, edi
or esi, dword [0x4c3d7e]
add ebx, 2
xor edi, ebx
sub edi, eax
mov ecx, 0
mov eax, ecx
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
xor eax, eax
add dword [0x4c3404], eax
sub eax, dword [0x4c3314]
sub eax, 0x582
sub eax, 0xc35
js 0x401972
add eax, edi
add eax, ebx
sub eax, dword [0x4c33cc]
cmp eax, 0xc07
jb 0x401983
mov edx, eax
add edx, dword [0x4c330e]
sub dword [0x4c300e], edx
mov ebx, 0x34f30199
push ebx
push 0x2f8e16
pop ecx
add ecx, 0x1ca35a
push ecx
mov edx, 0x2435fc
mov dword [0x4c3037], 0x27fb02
add edx, dword [0x4c3037]
push edx
xor ebx, ebx
push ebx
mov ecx, 0x112063
mov edi, ecx
add edi, 0x3b1142
push edi
push 0x8214d
pop edi
add edi, 0x440eea
push edi
push 0x1c
pop esi
push esi
xor edx, edx
push edx
mov ebx, 0x2770a6
add ebx, 0x18d066
push dword [ebx]
pop dword [0x4c320f]
mov ebx, dword [0x4c320f]
call ebx
or eax, eax
je 0x4016c5
ret