Function at 0x401c98
Capabilities:
Link many functions at runtime

Disassembly:
lea edi, [0x52]
sub esi, eax
lea esi, [2]
sub eax, 1
sub edi, eax
mov edi, 0xce
add ebx, esi
push 0
push 0
mov dword [0x4ea141], 0
mov ecx, dword [0x4ea141]
push ecx
call dword [sym.imp.kernel32.dll_GetProcAddress]
push 0x8e2
pop eax
inc eax
add eax, 0x86e
jb 0x401502
sub eax, 0x9bd
jb 0x401502
ror eax, 1
inc eax
ror eax, 1
sub dword [0x4ea097], eax
sub dword [0x4ea6fb], eax
mov edx, 0xa4
mov eax, edx
push eax
mov esi, 0x3f
push esi
push 7
pop esi
push esi
push 0xf8736
pop edi
add edi, 0x37c9fa
mov edi, dword [edi]
call edi
or eax, eax
jne 0x4014bb
leave
ret
sub eax, esi
xor esi, dword [0x4ec293]
add esi, ebx
lea ebx, [edi + 0x22]
add ebx, esi
sub edi, dword [0x4eac22]
mov ebx, 0x59d72151
push ebx
mov dword [0x4ea97a], 0
mov edx, dword [0x4ea97a]
push edx
mov edi, 0x23a808
shl edi, 1
call dword [edi]
inc eax
jne 0x401552
mov edi, 0
mov ebx, edi
push ebx
mov dword [0x4ea2e9], 0
mov ebx, dword [0x4ea2e9]
push ebx
push 0xcc
pop ebx
push ebx
xor ecx, ecx
push ecx
mov dword [0x4ea184], 0
mov ebx, dword [0x4ea184]
push ebx
mov esi, 0
push esi
push 0x253660
pop ebx
add ebx, 0x221a28
push dword [ebx]
pop dword [0x4ea814]
mov ebx, dword [0x4ea814]
call ebx
mov dword [0x4ea7cf], eax
or eax, eax
je 0x4015df
dec eax
leave
ret
xor esi, ebp
dec eax
push 0
push 0
mov esi, 0
mov ebx, esi
push ebx
call dword [sym.imp.kernel32.dll_GetProcAddress]
push 0xb0
pop esi
push esi
mov esi, 9
mov edx, esi
push edx
mov esi, 0x23a89e
shl esi, 1
call dword [esi]
or eax, eax
jne 0x4014b3
mov ebx, 1
push ebx
push 1
pop ebx
push ebx
push 0x296679
pop eax
mov dword [0x4eabe2], 0x1deacb
add eax, dword [0x4eabe2]
push dword [eax]
pop dword [0x4ea96e]
mov eax, dword [0x4ea96e]
call eax
inc eax
jne 0x401540
ret
mov edi, ebx
add ecx, 1
lea esi, [0x61]
sub ecx, ebx
mov ecx, 0x119
dec ecx
ror ecx, 7
add dword [0x4eac7b], ecx
add ecx, 0x139
sub ecx, ebx
shl ecx, 8
dec ecx
add ecx, dword [0x4ea1d6]
shr ecx, 1
sub dword [0x4eaa7c], ecx
push 1
pop esi
push esi
mov esi, 0xcf
push esi
xor ebx, ebx
push ebx
mov dword [0x4eadb8], 0
mov ebx, dword [0x4eadb8]
push ebx
push 0xce17bf
pop edx
sub edx, 0x86c67f
call dword [edx]
or eax, eax
jne 0x4014ce
leave
ret
lea ebx, [0]
mov esi, ebx
lea eax, [esi + 5]
add eax, esi
dec eax
push 0
push 0
mov dword [0x4ea049], 0
mov edx, dword [0x4ea049]
push edx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ecx, 0x9d
mov edi, ecx
push edi
mov eax, 0xe
push eax
mov ebx, 0x75
push ebx
mov edi, 0
mov esi, edi
push esi
mov edi, 3
push edi
mov ebx, 0x10611c7
sub ebx, 0xbec0f3
call dword [ebx]
mov dword [0x4ea03b], eax
mov eax, 0xed
push eax
mov edx, 0x9e
mov ebx, edx
push ebx
mov edx, 0x2e
push edx
push 0xcf
pop eax
push eax
mov edx, 0x23a890
shl edx, 1
call dword [edx]
mov edx, 0xdfa211
mov eax, edx
mov edi, 0x985199
mov edx, edi
sub eax, edx
call dword [eax]
or eax, eax
je 0x4014c1
leave
ret
sbb eax, eax
or al, bl
lea esi, [0xa]
lea esi, [0xa]
push 0
pop ecx
push ecx
mov eax, 0
push eax
xor ebx, ebx
push ebx
mov dword [0x4ea826], 0
mov ecx, dword [0x4ea826]
push ecx
mov edi, 0x23a834
shl edi, 1
call dword [edi]
or eax, eax
jne 0x4014c1
mov ebx, 4
mov eax, ebx
push eax
mov edx, dword [sym.imp.gdi32.dll_GetStockObject]
call edx
or eax, eax
je 0x4016db
push 0xefc
pop edi
add dword [0x4ea9f7], edi
add edi, 0x127
add dword [0x4ea242], edi
shl edi, 4
add edi, 0xef5
inc edi
add edi, 0x63a
ja 0x401803
shl edi, 1
sub dword [0x4eacd1], edi
leave
ret
add edi, 1
test edi, ebx
jne 0x401819
add ebx, esi
dec edi
push 0
push 0
mov ecx, 0
push ecx
call dword [sym.imp.kernel32.dll_GetProcAddress]
push 0x71b0e9c6
pop esi
push esi
mov dword [0x4ead70], 0
mov ebx, dword [0x4ead70]
push ebx
mov eax, 0x23a864
mov ebx, eax
shl ebx, 1
call dword [ebx]
push 0xe72be
pop ebx
mov dword [0x4ea630], 0x403421
add ebx, dword [0x4ea630]
push ebx
push 0x2df4ac
pop edx
mov eax, 0x20b601
add edx, eax
push edx
mov esi, 0x30dd57
mov edx, esi
mov dword [0x4eae20], 0x1dceff
add edx, dword [0x4eae20]
push edx
xor esi, esi
push esi
mov edx, dword [sym.imp.advapi32.dll_RegReplaceKeyW]
call edx
or eax, eax
je 0x4016e3
call fcn.0040180b
sub ebx, esi
cmp eax, dword [0x4eaf0b]
lea edi, [3]
add eax, edi
lea ebx, [0xe2]
mov ebx, esi
mov edx, edi
mov edi, 0
mov edx, edi
push edx
mov ecx, 3
push ecx
mov esi, dword [sym.imp.gdi32.dll_GetTextMetricsA]
call esi
mov dword [0x4eaa61], eax
push 0x2821a9
pop esi
mov dword [0x4ea6f1], 0x267ff3
add esi, dword [0x4ea6f1]
push esi
mov eax, 0x89a3a
mov ecx, 0x460eba
add eax, ecx
push eax
push 0x31aeba
pop ebx
mov dword [0x4eac55], 0x1cfb82
add ebx, dword [0x4eac55]
push ebx
mov ecx, 0
mov eax, ecx
push eax
mov eax, 0x23a8b2
mov edx, eax
shl edx, 1
call dword [edx]
or eax, eax
je 0x40180d
jmp 0x4018a2
sub edi, 2
cmp edi, dword [0x4eb452]
add ebx, esi
or esi, 0x68
add ebx, eax
sub ebx, eax
dec edi
push 0
push 0
push 0
pop edx
push edx
call dword [sym.imp.kernel32.dll_GetProcAddress]
push 9
pop ecx
push ecx
mov ecx, 0x11b45f2
push 0xd3f4a6
pop edx
sub ecx, edx
call dword [ecx]
mov dword [0x4ea076], eax
or eax, eax
je 0x401979
inc ebx
leave
ret
add eax, edi
xor edi, dword [0x4eb7c7]
dec esi
mov edi, 3
push edi
mov ecx, dword [sym.imp.USER32.DLL_GetDC]
call ecx
or eax, eax
jne 0x401989
mov edi, 0x28df25
mov eax, 0x1e7153
add edi, eax
push dword [edi]
pop dword [0x4ea475]
mov edi, dword [0x4ea475]
call edi
or eax, eax
je 0x401938
ret
or ax, ax
add ebx, esi
xor edi, esi
bswap ebx
inc eax
push 0
push 0
xor ecx, ecx
push ecx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ecx, 9
mov edx, ecx
push edx
mov esi, 0x23a8a6
shl esi, 1
call dword [esi]
inc eax
jne 0x4015e9
mov edi, 0
mov esi, edi
add esi, dword [0x4eaeaf]
sub esi, dword [0x4ea961]
add esi, 0x688
add esi, eax
sub esi, dword [0x4eabfa]
shl esi, 1
sub dword [0x4eab9d], esi
push eax
call 0x4019cd
add esi, edi
sub ebx, 2
add ebx, 1
mov edx, 0
mov eax, edx
push eax
mov dword [0x4ea70e], 0
mov edx, dword [0x4ea70e]
push edx
xor edx, edx
push edx
mov edi, 0x23a804
shl edi, 1
call dword [edi]
or eax, eax
jne 0x4019cd
mov eax, edi
sub eax, 0x110
jns 0x401a71
ror eax, 1
add eax, eax
sub eax, 0x5bd
shr eax, 2
mov esi, eax
dec esi
sub dword [0x4ea74d], esi
jmp 0x401a2b
lea edx, [eax + 0xaf]
add edx, eax
xor eax, ebx
push 0
push 0
xor ecx, ecx
push ecx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ebx, 0x52b54461
push ebx
push 0x7ce51486
pop ecx
push ecx
push 0x4948a545
pop ecx
push ecx
push 0
pop edi
push edi
mov eax, 0xf92c2
mov ebx, eax
mov dword [0x4ea656], 0x37be2e
add ebx, dword [0x4ea656]
push dword [ebx]
pop dword [0x4ead54]
mov ebx, dword [0x4ead54]
call ebx
or eax, eax
jne 0x4018aa
call 0x401a8a
sub esi, 1
lea eax, [eax + 0x9d]
lea eax, [1]
xor esi, dword [0x4ea279]
add esi, edi
dec ebx
push 0
push 0
mov edx, 0
mov ebx, edx
push ebx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [0x4ea311], 0
mov ecx, dword [0x4ea311]
push ecx
xor edx, edx
push edx
mov eax, 0
push eax
mov edx, dword [sym.imp.kernel32.dll_OpenMutexA]
call edx
mov dword [0x4ea29d], eax
push 1
pop ecx
push ecx
mov esi, 7
push esi
push 0x3d1544
pop esi
mov ebx, 0xa3c00
add esi, ebx
push dword [esi]
mov ebx, 0x4ea767
mov edx, ebx
pop dword [edx]
mov esi, dword [0x4ea767]
call esi
inc eax
jne 0x401a33
leave
ret
push 0
pop eax
xor eax, eax
push eax
push 0
pop ebx
push ebx
call dword [sym.imp.USER32.DLL_LoadIconA]
mov dword [0x4ea886], eax
mov eax, 0
mov dword [0x4ea9cd], 0
mov ebx, dword [0x4ea9cd]
push ebx
push 0
pop eax
push eax
call dword [sym.imp.USER32.DLL_LoadIconA]
mov dword [0x4eabb7], eax
mov dword [0x4ea5be], 0
mov eax, dword [0x4ea5be]
mov edx, esi
add edx, 0xfbe
sub edx, 0x366
add edx, 0x66f
sub dword [0x4ea793], edx
mov eax, 0
sub dword [0x4ea0b5], eax
shl eax, 1
dec eax
sub eax, esi
add eax, dword [0x4eac07]
sub dword [0x4eaa84], eax
jmp 0x402ac8
mov dword [ebp - 4], ebp
mov eax, dword [ebp - 4]
mov esi, eax
push esi
mov dword [ebp - 0x10], esp
mov ebp, dword [ebp - 0x10]
sub esp, 0x6c
push edi
push esi
push esi
push 0x990de
push 0x3296d
push 0
mov dword [ebp - 0x48], edi
lea eax, [0x4ea290]
push eax
push 0
call fcn.004010cc
mov dword [0x4ea227], eax
mov esi, edi
add esi, dword [0x4ea7e1]
rol esi, 4
add esi, eax
rol esi, 1
add esi, dword [0x4ead17]
mov eax, esi
add eax, esi
shl eax, 4
add dword [0x4ea918], eax
push 0
push 0xf003f
push 0
push 0x4ea1e4
push 0x80000002
push 0xb07dbe
pop eax
sub eax, 0x692c66
call dword [eax]
push 0
push 0
call fcn.00401280
mov dword [ebp - 0x48], eax
or eax, eax
je 0x402b54
mov dword [ebp - 0x50], ebx
lea ebx, [edi + 0x4ea7ee]
mov esi, ebx
inc esi
add esi, 0x7a2
add esi, dword [0x4ea701]
shl esi, 1
add dword [0x4eab3a], esi
lea eax, [0x4ea60d]
push eax
lea eax, [0x4ea7b8]
push eax
push 0
call fcn.004011b4
push 0
push 0
push 0x4da45
call fcn.0040104c
push 0x23c77
lea eax, [0x4ea3fc]
push eax
push eax
lea eax, [0x4eab4c]
push eax
call fcn.00401108
mov dword [0x4ead13], eax
push 0
mov dword [ebp - 0x3c], 0x23a880
mov esi, dword [ebp - 0x3c]
shl esi, 1
call dword [esi]
push 0x8ba
pop eax
sub eax, dword [0x4ea708]
ror eax, 1
sub eax, dword [0x4ea9b2]
sub eax, 0x756
add eax, 0x805
ror eax, 7
add eax, 0x11f
jne 0x402bf2
sub eax, dword [0x4eabea]
sub eax, edi
add eax, 0x339
sub dword [0x4eaa78], eax
add esi, ebx
inc eax
sub ebx, eax
add edi, eax
dec edi
push eax
push ebx
push 0
push ebx
call fcn.0040130c
mov dword [ebp - 0x64], eax
mov edx, 0x29aeef
mov eax, 0x24fab2
add edx, eax
push edx
mov dword [ebp - 0x28], 0x337014
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x6c], 0x13e108
add ebx, dword [ebp - 0x6c]
push dword [ebx]
pop eax
mov ebx, eax
call ebx
or eax, eax
jne 0x401932
mov dword [ebp - 0x34], 0
mov edi, dword [ebp - 0x34]
push edi
mov dword [ebp - 0x48], 0
mov ebx, dword [ebp - 0x48]
push ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [sym.imp.kernel32.dll_OpenWaitableTimerW]
call eax
or eax, eax
jne 0x4014ce
push eax
push eax
push 0x67325
push edi
push ebx
call fcn.00401430
mov dword [ebp - 0x60], 0x1c
mov eax, dword [ebp - 0x60]
push eax
push 1
pop edi
push edi
mov eax, 0x4d0941
mov ebx, eax
sub ebx, 0x5b7f1
call dword [ebx]
mov dword [0x4eaee5], eax
or eax, eax
je 0x402cb1
mov esi, edi
add edi, eax
mov ecx, 0xc4c
ror ecx, 7
mov ebx, ecx
dec ebx
sub dword [0x4eac0f], ebx
mov dword [0x4eabe7], 0
mov ebx, dword [0x4eabe7]
push ebx
mov ecx, 0x24d673
mov esi, ecx
add esi, 0x2279cd
push dword [esi]
pop dword [0x4ea8e5]
mov esi, dword [0x4ea8e5]
call esi
or eax, eax
je 0x401781
push 0x1476aa
pop edx
mov dword [ebp - 0x14], 0x3a3151
add edx, dword [ebp - 0x14]
push edx
mov ebx, dword [sym.imp.gdi32.dll_AddFontResourceA]
call ebx
or eax, eax
jne 0x401665
mov dword [0x4eaf02], 0
mov edi, dword [0x4eaf02]
push edi
mov dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x1c]
push esi
mov edi, dword [sym.imp.USER32.DLL_LoadIconA]
call edi
or eax, eax
jne 0x4019cd
xor esi, esi
push esi
mov ebx, 0
push ebx
push 7
pop ebx
push ebx
mov ebx, 0xa7
push ebx
mov edx, 9
push edx
push 0x8ced9e
pop eax
sub eax, 0x459c8e
call dword [eax]
or eax, eax
jne 0x40165d
xor esi, esi
sub esi, ebx
add dword [0x4ea6b2], esi
sub esi, dword [0x4eade7]
sub esi, 0x985
sub esi, edi
mov eax, esi
sub eax, dword [0x4ea8c7]
mov dword [ebp - 0x3c], eax
mov edx, 0
push edx
mov dword [0x4ea5c2], 0
mov ebx, dword [0x4ea5c2]
push ebx
mov edi, 0xef6c78
mov esi, 0xa81b9c
sub edi, esi
call dword [edi]
or eax, eax
jne 0x4018a4
push 0x560f2169
pop edx
push edx
mov eax, 0x368ffb00
mov esi, eax
push esi
mov dword [ebp - 0x40], 0x3a0d5e1d
mov edx, dword [ebp - 0x40]
push edx
mov dword [0x4eab2a], 0
mov eax, dword [0x4eab2a]
push eax
mov ebx, 0x3570a5
mov edi, ebx
mov ebx, 0x11e04b
add edi, ebx
push dword [edi]
pop dword [0x4ea807]
mov edi, dword [0x4ea807]
call edi
xor edx, edx
push edx
mov esi, 0xd2
mov ebx, esi
push ebx
push 7
pop ecx
push ecx
mov eax, 0x3ba66f
mov esi, eax
mov dword [0x4eaf0b], 0xbaab5
add esi, dword [0x4eaf0b]
push dword [esi]
pop dword [0x4ea379]
mov esi, dword [0x4ea379]
call esi
mov esi, 9
mov eax, esi
push eax
mov esi, 0x10a8bc1
mov edi, esi
sub edi, 0xc33ac1
call dword [edi]
mov dword [ebp - 0x40], eax
inc edi
push ebx
lea eax, [0x4ea8f0]
push eax
push ebx
lea eax, [0x4ea07d]
push eax
call fcn.0040130c
mov dword [0x4ea363], eax
or eax, eax
je 0x402e84
dec eax
mov ebx, esi
inc esi
mov ecx, 0xd7a6f3
mov dword [ebp - 0x2c], 0x9056d7
mov esi, dword [ebp - 0x2c]
sub ecx, esi
call dword [ecx]
or eax, eax
je 0x401a8a
mov ecx, 0x36
mov edx, ecx
push edx
push 0xe3
pop edx
push edx
mov dword [ebp - 0x18], 0x39
mov edx, dword [ebp - 0x18]
push edx
mov dword [ebp - 0x30], 9
mov esi, dword [ebp - 0x30]
push esi
push 1
pop edi
push edi
mov ebx, 0x46a611
mov dword [0x4ea8be], 0xaacf
add ebx, dword [0x4ea8be]
push dword [ebx]
pop dword [0x4ea0ab]
mov ebx, dword [0x4ea0ab]
call ebx
or eax, eax
jne 0x4014b9
mov eax, 0x401d52
mov edi, eax
mov dword [0x4ea6d3], 0xe88a5
add edi, dword [0x4ea6d3]
push edi
mov edi, 0x4526d4
mov eax, edi
mov dword [ebp - 4], 0x98314
add eax, dword [ebp - 4]
push eax
mov dword [ebp - 0x24], 0x1d69ee
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], 0x313fc2
add edx, dword [ebp - 0x1c]
push edx
xor ecx, ecx
push ecx
mov edx, dword [sym.imp.advapi32.dll_RegReplaceKeyW]
call edx
or eax, eax
je 0x401991
mov dword [0x4ea07e], 0
mov ebx, dword [0x4ea07e]
push ebx
mov dword [0x4eabea], 0
mov eax, dword [0x4eabea]
push eax
xor ebx, ebx
push ebx
mov ebx, dword [sym.imp.kernel32.dll_OpenProcess]
call ebx
mov dword [0x4eaa31], eax
mov edx, 0x486f38
mov edi, edx
mov ebx, 0x6329d
add edi, ebx
push edi
mov ebx, 0xc2045
mov ecx, ebx
add ecx, 0x3b30d7
push dword [ecx]
pop dword [0x4eaa66]
mov ecx, dword [0x4eaa66]
call ecx
or eax, eax
jne 0x4014bb
mov ecx, 0xfc6
rol ecx, 1
add dword [0x4ea556], ecx
dec ecx
rol ecx, 6
mov dword [ebp - 4], ecx
lea eax, [esi + 0x4eaae6]
ror eax, 4
cmp eax, 0xb96
jns 0x402fd5
add eax, eax
sub eax, dword [0x4ea336]
sub eax, ebx
dec eax
add eax, eax
sub dword [0x4ea523], eax
add dword [0x4ea88a], eax
lea eax, [0x4ea74a]
push eax
push 0xd4498
push 0x3e9d0
add ecx, edi
add eax, ecx
inc esi
push 0
add eax, ebx
dec eax
push 0
lea eax, [0x4ea50c]
push eax
mov ecx, 0x9933c400
sub ecx, 0x98f3a640
call ecx
or eax, eax
je 0x4014c9
mov ebx, eax
mov edi, 0x1a38145b
mov ecx, edi
push ecx
xor edi, edi
push edi
mov dword [ebp - 0x48], 0xf8394
mov esi, dword [ebp - 0x48]
mov dword [ebp - 4], 0x37cc7c
add esi, dword [ebp - 4]
push dword [esi]
mov edx, 0x4eaa09
mov eax, edx
pop dword [eax]
mov esi, dword [0x4eaa09]
call esi
mov dword [ebp - 0x5c], eax
or eax, eax
jne 0x403062
add esi, edi
mov esi, 0xcd
mov ecx, esi
push ecx
push 0x74
pop esi
push esi
mov dword [ebp - 0x28], 5
mov edi, dword [ebp - 0x28]
push edi
mov ecx, 0x2d6761
mov eax, ecx
mov dword [ebp - 0x38], 0x19e9cf
add eax, dword [ebp - 0x38]
mov eax, dword [eax]
call eax
or eax, eax
jne 0x4016d5
push 4
pop edx
push edx
mov dword [ebp - 8], 0x103e7d1
mov edx, dword [ebp - 8]
sub edx, 0xbc96c5
call dword [edx]
or eax, eax
je 0x401540
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
push edi
push 0
pop eax
push eax
mov edi, dword [sym.imp.USER32.DLL_LoadIconA]
call edi
or eax, eax
jne 0x401af0
lea eax, [0x4ea8e3]
push eax
push 0x2b32
push 0x61c17
lea eax, [0x4ea2b7]
push eax
lea eax, [0x4eab36]
push eax
sub esi, ebx
lea eax, [0x4ea338]
push eax
call fcn.00401204
xor esi, esi
push esi
mov dword [ebp - 8], 0xbb
mov esi, dword [ebp - 8]
push esi
mov edx, 9
mov ecx, edx
push ecx
push 0x63d75e
pop ecx
sub ecx, 0x1c86ae
call dword [ecx]
or eax, eax
jne 0x401a8a
push 0x8e1
pop eax
add eax, ebx
add eax, 0x46
ja 0x403147
rol eax, 3
mov edx, eax
ror edx, 1
add edx, edi
sub edx, 0xf5a
rol edx, 3
sub dword [0x4ea819], edx
lea eax, [0x4ea9fa]
push eax
push 0
push 0x8430b
call fcn.0040104c
mov dword [0x4ea8e8], eax
or eax, eax
jne 0x403179
inc esi
mov dword [ebp - 0x28], 1
mov edx, dword [ebp - 0x28]
push edx
push 9
pop edx
push edx
mov dword [ebp - 0x60], 0
mov esi, dword [ebp - 0x60]
push esi
mov edi, 0
mov edx, edi
push edx
mov edi, dword [sym.imp.gdi32.dll_CreatePolyPolygonRgn]
call edi
mov dword [0x4ea658], eax
push 0
mov dword [ebp - 0x58], ebx
dec eax
sub esi, edi
push 0
call fcn.0040133c
mov dword [ebp - 0x10], eax
mov edx, eax
add edx, 0x37
sub edx, dword [0x4ea8dd]
add edx, 0x610
sub edx, edi
inc edx
sub dword [0x4eab7d], edx
mov edx, 0x8e
push edx
mov dword [0x4ea149], 0
mov edi, dword [0x4ea149]
push edi
mov dword [0x4ea0fc], 0
mov ecx, dword [0x4ea0fc]
push ecx
mov ecx, 9
push ecx
mov eax, dword [sym.imp.gdi32.dll_EnumFontsW]
call eax
or eax, eax
jne 0x40177d
push 0xa11ff
pop edi
mov dword [0x4ea678], 0x4490bb
add edi, dword [0x4ea678]
push edi
mov esi, 0x426a9f
mov dword [ebp - 4], 0xc3902
add esi, dword [ebp - 4]
push esi
mov eax, 0x10172
mov esi, eax
mov dword [0x4eadbb], 0x4daa68
add esi, dword [0x4eadbb]
push esi
xor edi, edi
push edi
mov esi, 0x23a8b2
mov ecx, esi
shl ecx, 1
call dword [ecx]
or eax, eax
je 0x40166b
lea eax, [0x4eab16]
push eax
lea eax, [0x4ea577]
push eax
call fcn.0040133c
mov dword [0x4ea93a], eax
or eax, eax
jne 0x40328c
add esi, ebx
add esi, ebx
push 0x706ca
push esi
lea eax, [0x4eaa11]
push eax
push ebx
push edi
lea eax, [0x4ea727]
push eax
call fcn.004010cc
mov dword [ebp - 0xc], eax
or eax, eax
jne 0x4032b0
bswap eax
mov dword [0x4eac2c], 0
mov esi, dword [0x4eac2c]
push esi
mov dword [0x4ea753], 0
mov edx, dword [0x4ea753]
push edx
push 0
pop edx
push edx
mov ecx, 0xdfd2b9
mov dword [ebp - 0xc], 0x988269
mov eax, dword [ebp - 0xc]
sub ecx, eax
call dword [ecx]
or eax, eax
jne 0x401940
push 0
push 0x27d35
lea eax, [0x4ea5f1]
push eax
mov ecx, 0x69351
add ecx, 0x399007
call ecx
push esi
push edi
inc edi
mov dword [ebp - 0x24], esi
or ebx, esp
push 0x4d6a1
push 0
push 0
call fcn.004011b4
mov dword [ebp - 0x44], eax
or eax, eax
je 0x40332d
inc esi
mov ebx, eax
sub ebx, esi
sub ebx, 0xc4f
sub ebx, edi
add dword [0x4ea5df], ebx
shr ebx, 1
inc ebx
mov esi, ebx
add esi, eax
add dword [0x4eab3a], esi
push 0
push 0
call fcn.0040133c
mov dword [ebp - 0x50], eax
or eax, eax
je 0x403360
mov dword [ebp - 0x38], eax
inc ebx
push ebx
push eax
lea eax, [0x4ea0e0]
push eax
push 0xe97
add esi, edi
inc ebx
sub edi, ebx
push 0x127c6
call fcn.004012cc
mov dword [0x4eac5f], eax
or eax, eax
je 0x403389
mov edx, ebx
cwde
mov edx, 0x263
sub edx, dword [0x4eaa46]
cmp edx, 0xb70
js 0x40339d
dec edx
add edx, 0xde7
sub edx, 0xfab
je 0x4033ac
inc edx
shl edx, 3
add edx, 0xc21
sub edx, dword [0x4eab2d]
sub dword [0x4ea5cc], edx
mov eax, ebx
mov dword [ebp - 0x6c], eax
sub eax, dword [0x4ea3d2]
sub eax, 0x2a
dec eax
add eax, esi
sub eax, 0x819
js 0x4033de
shl eax, 1
inc eax
sub dword [0x4ea681], eax
push edx
push eax
call fcn.00401280
mov dword [ebp - 0x44], eax
or eax, eax
jne 0x4033f7
xor ebx, ebx
add esi, eax
or ebx, eax
inc eax
add ebx, edi
lea eax, [0x4ea6a2]
push eax
dec esi
dec eax
push 0xcbeaf
lea eax, [0x4ea3f8]
push eax
push ebx
push 0
push 0
call fcn.00401204
mov dword [ebp - 0x5c], eax
or eax, eax
je 0x403424
xor ebx, ebp
mov ecx, 0
inc ecx
sub ecx, 0x481
jbe 0x403438
add ecx, dword [0x4ea55c]
add ecx, dword [0x4eae85]
sub ecx, 0x874
sub ecx, dword [0x4ea361]
add ecx, 0x99f
dec ecx
sub ecx, dword [0x4ea0ec]
ror ecx, 1
mov dword [ebp - 0x38], ecx
ret