Function at 0x4ffad0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5821b5
mov eax, dword fs:[0]
push eax
sub esp, 0x17c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x190]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1a4]
mov ebp, dword [esp + 0x1a0]
xor esi, esi
cmp dword [ebp + 0x148], esi
mov dword [eax], esi
mov dword [eax + 4], esi
je 0x4ffb30
mov eax, dword [ebp + 0x1a8]
jmp 0x4ffb3d
push esi
mov eax, 0x592720
mov ecx, ebp
call fcn.004fcf20
lea ecx, [esp + 0xb4]
push str._body_
push ecx
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.00401c80
add esp, 8
push eax
mov ecx, edi
mov dword [esp + 0x19c], esi
call fcn.00402310
mov dword [esp + 0x198], 0xffffffff
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ffb95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str.__body_
mov ecx, edi
call fcn.004121c0
mov ecx, dword [ebx + 4]
mov dword [ebp + 0x154], ecx
mov edx, dword [ebx]
mov dword [ebp + 0x150], edx
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x15c], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 0x158], eax
mov ecx, dword [ebx + 4]
mov esi, dword [ebx]
sub eax, edx
mov edx, dword [ebp + 0x174]
mov dword [esp + 0x28], ecx
push 0x592720
lea ecx, [esp + 0x30]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
call fcn.00402390
push 0x592720
lea ecx, [esp + 0xa8]
mov dword [esp + 0x19c], 1
call fcn.00402390
push 0x592720
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 2
call fcn.00402390
push 0x592720
lea ecx, [esp + 0x34]
mov byte [esp + 0x19c], 3
call fcn.00402390
push 0x592720
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 4
call fcn.00402390
push esi
mov ebx, ebp
mov byte [esp + 0x19c], 5
call fcn.00502660
mov edx, dword [edi]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0xcc]
mov dword [esp + 0x48], eax
mov eax, dword [edx - 0xc]
test eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0xa0], 0
jle 0x501c6d
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0xec]
push edx
mov ecx, edi
call fcn.00504410
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 6
call fcn.00402310
mov byte [esp + 0x198], 5
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ffcf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xe0]
push ecx
lea esi, [esp + 0xa8]
call fcn.005046c0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 7
call fcn.00402310
mov byte [esp + 0x198], 5
mov eax, dword [esp + 0xe0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ffd45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x2c]
cmp dword [ebx - 0xc], 0
je 0x5002a7
mov eax, dword [ebp + 0xa4]
sub eax, 1
je 0x4ffe14
sub eax, 1
je 0x4ffe09
sub eax, 1
jne 0x4ffe21
lea edi, [esp + 0x2c]
call fcn.00431fa0
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx - 0xc]
xor esi, esi
test eax, eax
jle 0x4ffe21
mov edi, edi
test esi, esi
jl 0x501e4d
cmp esi, eax
jg 0x501e4d
movzx edx, word [ebx + esi*2]
movzx ecx, dx
cmp cx, 0x61
jb 0x4ffdfd
cmp esi, eax
jg 0x501e4d
movzx ecx, dx
cmp cx, 0x7a
ja 0x4ffdfd
test esi, esi
je 0x4ffde0
lea ecx, [esi - 1]
test ecx, ecx
jl 0x501e4d
cmp ecx, eax
jg 0x501e4d
movzx ecx, word [ebx + esi*2 - 2]
cmp cx, 0x20
jne 0x4ffdfd
cmp esi, eax
jg 0x501e4d
movzx eax, dx
add eax, 0xffffffe0
push eax
push esi
lea ecx, [esp + 0x34]
call fcn.004635d0
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx - 0xc]
add esi, 1
cmp esi, eax
jl 0x4ffd90
jmp 0x4ffe21
lea edi, [esp + 0x2c]
call fcn.00431fa0
jmp 0x4ffe1d
lea edi, [esp + 0x2c]
call fcn.0048c530
mov ebx, dword [esp + 0x2c]
cmp dword [ebx - 0xc], 0
je 0x5002a7
mov ecx, dword [ebp + 0x160]
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x18]
push edx
push ecx
push eax
mov eax, dword [ebp + 0x160]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.00502450
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
add esi, 0xfffffff0
mov edi, eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x44], edi
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4ffe98
cmp eax, dword [esi]
jne 0x4ffe98
mov ebx, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4ffed3
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x501e57
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.005523bd
add esp, 0x10
add ebx, 0x10
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0xb0]
mov byte [esp + 0x198], 8
mov esi, dword [ebp + 0x150]
sub esi, dword [esp + 0x24]
add esi, eax
cmp dword [ebp + 0x170], 0
je 0x4fff71
mov ecx, esi
sub ecx, dword [esp + 0x18]
jns 0x4fff71
test eax, eax
je 0x4fff71
lea edx, [esp + 0x14]
push edx
push eax
lea eax, [esp + 0xdc]
push eax
push ebp
lea ecx, [esp + 0x3c]
mov dword [esp + 0x24], esi
call fcn.00506670
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x19c], 9
call fcn.00402310
mov byte [esp + 0x198], 8
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4fff63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
jmp 0x4fffd2
mov edx, dword [esp + 0x2c]
cmp dword [edx - 0xc], 0
mov ecx, dword [edx - 0x10]
lea eax, [edx - 0x10]
mov dword [esp + 0x40], ecx
je 0x4fffd2
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x4fffaa
cmp dword [edx - 8], 0
jl 0x501e4d
mov dword [edx - 0xc], 0
mov edx, dword [esp + 0x2c]
mov word [edx], 0
jmp 0x4fffd2
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4fffc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
cmp dword [ebp + 0x168], 0
jne 0x500195
mov eax, dword [esp + 0x18]
test eax, eax
je 0x500225
mov ecx, dword [esp + 0x38]
sub ecx, eax
jne 0x50007c
mov ecx, dword [ebx - 0xc]
lea eax, [ecx - 1]
test eax, eax
jl 0x501e4d
cmp eax, ecx
jg 0x501e4d
movzx eax, word [ebx + eax*2]
cmp ax, 0x20
jne 0x50007c
lea ebx, [esp + 0x3c]
call fcn.00409830
mov ebx, dword [esp + 0x3c]
push ecx
lea eax, [ebx - 0x10]
mov dword [esp + 0x50], esp
mov dword [esp + 0x44], esp
push eax
mov di, 0x20
call fcn.004020f0
mov edx, dword [esp + 0x48]
add eax, 0x10
add esp, 4
mov dword [edx], eax
call fcn.00506980
mov edx, dword [ebp + 0x160]
lea ecx, [esp + 0x10c]
push ecx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx - 0xc]
push eax
push ebx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x10c]
sub eax, dword [esp + 0x18]
mov edi, dword [esp + 0x44]
add dword [esp + 0x38], eax
cmp dword [ebp + 0xc8], 3
jne 0x5000a5
cmp dword [ebp + 0xd0], 0
je 0x5000a5
mov ecx, dword [esp + 0x48]
sub esi, dword [esp + 0x38]
mov edx, dword [ebp + 0x160]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x18]
sub dword [esp + 0x38], eax
mov eax, dword [ebx - 0xc]
mov edx, dword [ebp + 0x160]
lea ecx, [esp + 0x18]
push ecx
push eax
push ebx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
add eax, edi
push eax
add ecx, esi
push ecx
push edi
push esi
mov ecx, ebp
call fcn.00502010
mov eax, dword [ebx - 0xc]
mov edx, dword [ebp + 0x160]
push eax
push ebx
push edi
push esi
push edx
call dword [sym.imp.GDI32.dll_TextOutW]
push ecx
lea eax, [ebx - 0x10]
mov dword [esp + 0x50], esp
mov dword [esp + 0x44], esp
push eax
mov di, 0x20
call fcn.004020f0
mov ecx, dword [esp + 0x48]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
call fcn.00506980
sub dword [esp + 0x48], eax
cmp dword [ebp + 0x58], 0
je 0x500225
mov edx, dword [ebp + 0x60]
xor eax, eax
cmp dword [ebp + 0x48], 0x2bc
push edx
setge al
add eax, 1
push eax
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov ecx, dword [ebp + 0x160]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x44]
push 0
push edx
mov edi, eax
mov eax, dword [ebp + 0x160]
push esi
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x160]
push ecx
add edx, esi
push edx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
mov ecx, dword [ebp + 0x160]
push edi
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x500225
mov edx, dword [ebp + 0x84]
mov dword [ebp + 0xc8], edx
push ecx
mov ecx, dword [ebx - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea esi, [ebx - 0x10]
mov dword [esp + 0x50], esp
mov dword [esp + 0x44], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x5001d1
cmp eax, dword [esi]
jne 0x5001d1
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x50020c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x501e57
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.005523bd
add esp, 0x10
mov ecx, dword [esp + 0x44]
add edi, 0x10
mov dword [ecx], edi
mov edi, 0x20
call fcn.00506980
add dword [ebp + 0xcc], eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x24], edx
cmp dword [eax - 0xc], 0
je 0x500275
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xd0], 1
call fcn.00502570
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
add ebx, 0xfffffff0
mov byte [esp + 0x198], 5
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x500299
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [esp + 0x2c]
cmp dword [ecx - 0xc], 0
jne 0x4ffe2b
mov edx, dword [esp + 0xa4]
xor edi, edi
cmp dword [edx - 0xc], edi
je 0x501c28
lea ebx, [ebp + 0x40]
mov ecx, ebx
call fcn.00402160
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0xa8]
push ebx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x58], esp
mov esi, esp
push eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x24], edi
call fcn.004020f0
add esp, 4
add eax, 0x10
push ebp
mov dword [esi], eax
call fcn.004fc1a0
mov esi, eax
cmp esi, edi
mov dword [esp + 0x40], esi
je 0x501c28
mov ecx, dword [ebx]
cmp dword [ecx - 0xc], edi
je 0x500934
mov edx, dword [esp + 0x3c]
push edx
mov edi, ebp
call fcn.00502140
test eax, eax
je 0x501c28
xor ecx, ecx
cmp dword [esp + 0x3c], ecx
jne case.0x50033b.6
lea eax, [esi - 1]
cmp eax, 0x16
ja case.0x50033b.6
jmp dword [eax*4 + 0x501e68]
shl dword [ebp + 0x48], 1
mov eax, 0x384
cmp dword [ebp + 0x48], eax
jle case.0x50033b.6
mov esi, ebp
mov dword [ebp + 0x48], eax
call fcn.00502370
jmp 0x501c28
xor eax, eax
cmp dword [ebp + 0x4c], ecx
mov esi, ebp
sete al
mov dword [ebp + 0x4c], eax
call fcn.00502370
jmp 0x501c28
xor edx, edx
cmp dword [ebp + 0x50], ecx
mov esi, ebp
sete dl
mov dword [ebp + 0x50], edx
call fcn.00502370
jmp 0x501c28
xor eax, eax
cmp dword [ebp + 0x54], ecx
mov esi, ebp
sete al
mov dword [ebp + 0x54], eax
call fcn.00502370
jmp 0x501c28
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], ecx
jle case.0x50033b.6
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.005047e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0xa
call fcn.00402310
lea ecx, [esp + 0xdc]
mov byte [esp + 0x198], 5
call fcn.004a4690
mov edx, dword [esp + 0x30]
cmp dword [edx - 0xc], 0
je 0x50059d
lea eax, [esp + 0x30]
push str.face
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x500479
push ecx
lea esi, [ebp + 0x5c]
mov ecx, esp
mov dword [esp + 0x50], esp
push esi
call fcn.004020d0
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0xb
call fcn.004020d0
lea edi, [esp + 0xc0]
mov byte [esp + 0x1a0], 5
call fcn.00505f30
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0xc
call fcn.004022f0
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.004a4690
jmp 0x50059d
lea eax, [esp + 0x30]
push str.size
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x5004a6
mov ecx, dword [ebp + 0x44]
push 1
push ebp
lea edx, [esp + 0x3c]
call fcn.00503c70
mov dword [ebp + 0x44], eax
jmp 0x50059d
lea ecx, [esp + 0x30]
push str.color
push ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x5004f0
cmp dword [ebp + 0x148], 0
je 0x5004da
mov ecx, dword [ebp + 0x60]
push ebp
lea esi, [esp + 0x38]
call fcn.00503aa0
mov dword [ebp + 0x60], eax
jmp 0x50059d
push 0
mov eax, 0x592720
mov ecx, ebp
call fcn.004fcf20
mov dword [ebp + 0x60], eax
jmp 0x50059d
lea edx, [esp + 0x30]
push str.style
push edx
call fcn.0040dd60
add esp, 8
test al, al
je 0x500516
lea ebx, [esp + 0x34]
mov edi, ebp
call fcn.00505ff0
jmp 0x50059d
lea eax, [esp + 0x30]
push str.weight
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x50053e
mov ecx, dword [ebp + 0x48]
push ecx
lea eax, [esp + 0x38]
call fcn.005038a0
mov dword [ebp + 0x48], eax
jmp 0x50059d
lea edx, [esp + 0x30]
push str.bkgnd
push edx
call fcn.0040dd60
add esp, 8
test al, al
je 0x50059d
lea eax, [esp + 0x34]
push str.transparent
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x500574
mov ecx, dword [esp + 0x34]
cmp dword [ecx - 0xc], 0
je 0x50057d
cmp dword [ebp + 0x148], 0
jne 0x500586
mov dword [ebp + 0x78], 1
jmp 0x50059d
mov ecx, dword [ebp + 0x64]
push ebp
lea esi, [esp + 0x38]
mov dword [ebp + 0x78], 2
call fcn.00503aa0
mov dword [ebp + 0x64], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x5003b4
mov esi, ebp
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x84], ecx
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x84], 1
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x84], 2
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x84], 3
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x88], 3
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x88], ecx
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x88], 1
call fcn.00502370
jmp 0x501c28
mov esi, ebp
mov dword [ebp + 0x88], 2
call fcn.00502370
jmp 0x501c28
mov ecx, dword [esp + 0xa4]
jmp 0x50091f
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], ecx
jle case.0x50033b.6
jmp 0x500680
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.005047e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0xd
call fcn.00402310
lea ecx, [esp + 0xf0]
mov byte [esp + 0x198], 5
call fcn.004a4690
lea eax, [esp + 0x30]
push str.class
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x500765
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x592720
call fcn.00402390
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0xe
call fcn.004020d0
lea edi, [esp + 0x100]
mov byte [esp + 0x1a0], 5
call fcn.00505f30
lea ecx, [esp + 0xc0]
push 0x5925cc
push ecx
mov ecx, eax
mov byte [esp + 0x1a0], 0xf
call fcn.00401c80
add esp, 8
mov byte [esp + 0x198], 0x10
mov ecx, dword [eax]
mov eax, ebx
mov edx, ebp
call fcn.00502110
lea ecx, [esp + 0xc0]
call fcn.004a4690
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.004a4690
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x500680
mov esi, ebp
call fcn.00502370
jmp 0x501c28
lea esi, [ebp + 0xb4]
mov ecx, esi
mov dword [ebp + 0xb0], 2
call fcn.00402160
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jle 0x500900
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xcc]
push edx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.005047e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x11
call fcn.00402310
lea ecx, [esp + 0xc8]
mov byte [esp + 0x198], 5
call fcn.004a4690
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
je 0x5008ef
lea ecx, [esp + 0x30]
push str.href
push ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x500872
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x592720
mov dword [ebp + 0xb0], 1
call fcn.00402390
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0x12
call fcn.004020d0
lea edi, [esp + 0xf0]
mov byte [esp + 0x1a0], 5
call fcn.00505f30
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0x13
call fcn.004022f0
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.004a4690
lea eax, [esp + 0x30]
push 0x5acf3c
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x5008ef
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x592720
mov dword [ebp + 0xb0], 2
call fcn.00402390
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0x14
call fcn.004020d0
lea edi, [esp + 0xd8]
mov byte [esp + 0x1a0], 5
call fcn.00505f30
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0x15
call fcn.004022f0
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.004a4690
mov eax, dword [esp + 0x20]
mov eax, dword [eax - 0xc]
cmp dword [esp + 0x14], eax
jl 0x5007a7
add dword [ebp + 0x180], 1
mov eax, dword [ebp + 0x180]
cmp eax, dword [ebp + 0x17c]
mov ecx, str.a:hover
je 0x50091f
mov ecx, str.a:link
mov eax, ebx
mov edx, ebp
call fcn.00502110
mov esi, ebp
call fcn.00502370
jmp 0x501c28
call fcn.00530e1f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x501e5c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x90], eax
call fcn.00530e1f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x501e5c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x94], eax
lea esi, [esp + 0x114]
call fcn.004fb090
mov eax, dword [esp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
mov byte [esp + 0x198], 0x17
ja case.0x5009ad.9
movzx ecx, byte [eax + 0x501ee4]
jmp dword [ecx*4 + 0x501ec4]
mov eax, ebx
lea esi, [esp + 0x114]
call fcn.00501f40
mov esi, 1
lea eax, [esp + 0x114]
mov ecx, 0x5bf3f0
mov edx, ebp
mov dword [esp + 0x164], esi
call fcn.00502110
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov ebx, 0x64
mov dword [esp + 0x3c], esi
jle 0x500b28
jmp 0x500a00
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.005047e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x18
call fcn.00402310
mov byte [esp + 0x198], 0x17
mov eax, dword [esp + 0xec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x500a57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x30]
cmp dword [ecx - 0xc], edi
je 0x500b11
lea edx, [esp + 0x30]
push str.width
push edx
call fcn.0040dd60
add esp, 8
test al, al
je 0x500a9b
lea eax, [esp + 0x34]
call fcn.00506190
push edi
push ebp
mov ecx, 0x64
lea edx, [esp + 0x3c]
mov dword [esp + 0x44], eax
call fcn.00503c70
mov ebx, eax
jmp 0x500b11
lea eax, [esp + 0x30]
push str.size
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x500acc
mov ecx, dword [esp + 0x164]
push edi
push ebp
lea edx, [esp + 0x3c]
call fcn.00503c70
mov dword [esp + 0x164], eax
jmp 0x500b11
lea ecx, [esp + 0x30]
push str.color
push ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x500b11
cmp dword [ebp + 0x148], edi
je 0x500afd
mov ecx, dword [esp + 0x134]
push ebp
lea esi, [esp + 0x38]
call fcn.00503aa0
jmp 0x500b0a
push edi
mov eax, 0x592720
mov ecx, ebp
call fcn.004fcf20
mov dword [esp + 0x134], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x500a00
cmp dword [esp + 0x3c], edi
je 0x500b56
cmp dword [ebp + 0x168], 1
jne 0x500b3e
add dword [ebp + 0xc4], ebx
mov ebx, 1
jmp 0x500b56
mov eax, dword [esp + 0x1ac]
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
push 0x64
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
mov eax, dword [ebp + 0x168]
cmp eax, 1
jne 0x500b92
mov eax, dword [esp + 0x164]
mov ecx, dword [ebp + 0xbc]
add eax, 8
cmp ecx, eax
jle 0x500b77
mov eax, ecx
mov edx, dword [ebp + 0x84]
add dword [esp + 0x24], ebx
mov dword [ebp + 0xbc], eax
mov dword [ebp + 0xc8], edx
jmp case.0x5009ad.9
cmp eax, edi
jne 0x500bcf
mov eax, dword [ebp + 0xbc]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x134]
mov esi, dword [ebp + 0x160]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
push 1
sar eax, 1
add eax, ecx
push edi
push eax
lea ecx, [ebx + edx]
push ecx
push eax
mov eax, dword [esp + 0x178]
mov ecx, edx
call fcn.004fac70
add dword [esp + 0x24], ebx
jmp case.0x5009ad.9
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov eax, 1
je 0x500c2e
push eax
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x28]
call fcn.004269c0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 0x19
call fcn.00402310
lea ecx, [esp + 0xd8]
mov byte [esp + 0x198], 0x17
call fcn.004a4690
push edi
push ebp
mov ecx, 1
lea edx, [esp + 0x28]
call fcn.00503c70
mov edx, dword [esp + 0x1a4]
push eax
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xd0], edi
call fcn.00502570
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
jmp case.0x5009ad.9
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov eax, 1
je 0x500cc2
push eax
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x28]
call fcn.004269c0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 0x1a
call fcn.00402310
lea ecx, [esp + 0xf4]
mov byte [esp + 0x198], 0x17
call fcn.004a4690
push edi
push ebp
mov ecx, 1
lea edx, [esp + 0x28]
call fcn.00503c70
push ebp
lea edi, [esp + 0x28]
call fcn.00502780
jmp case.0x5009ad.9
mov eax, 0x64
mov esi, 1
lea ecx, [esp + 0x90]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], 0xff00ff
mov dword [esp + 0x80], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
call fcn.00402160
lea ecx, [esp + 0x94]
call fcn.00402160
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.00505a40
mov ecx, dword [esp + 0x58]
cmp ecx, edi
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
jne 0x500d68
cmp edx, edi
jne 0x500d68
cmp ebx, edi
jne 0x500d68
cmp dword [eax - 0xc], edi
je case.0x5009ad.9
cmp ecx, edi
mov dword [esp + 0x3c], esi
je 0x500d7c
push ecx
call fcn.004fb4a0
mov dword [esp + 0x14], eax
jmp 0x500db4
cmp dword [eax - 0xc], edi
je 0x500d8c
call fcn.004fb4c0
mov dword [esp + 0x14], eax
jmp 0x500db4
cmp edx, edi
je 0x500da4
mov eax, dword [esp + 0x94]
push edx
push ebp
call fcn.004fb4e0
mov dword [esp + 0x14], eax
jmp 0x500db4
cmp ebx, edi
je case.0x5009ad.9
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x14], edi
je case.0x5009ad.9
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
mov dword [esp + 0x44], edi
test eax, 0x300
je 0x500dd5
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x14]
lea esi, [esp + 0x18]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.004f8080
cmp dword [esp + 0x84], edi
je 0x500e09
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x18]
push 0x64
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x88], edi
je 0x500e28
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
push 0x64
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x6c], edi
je 0x500e58
cmp dword [esp + 0x70], edi
je 0x500e58
cmp dword [esp + 0x44], edi
je 0x500e58
mov ebx, dword [ebp + 0x194]
add ebx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x198]
add eax, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
jmp 0x500e5c
mov ebx, dword [esp + 0x18]
mov eax, dword [ebp + 0x150]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x170], edi
je 0x500ec1
sub eax, ebx
jns 0x500ec1
cmp ecx, edi
je 0x500ec1
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xd0], 1
call fcn.00502570
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ebp + 0xb8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
sub dword [esp + 0x38], ebx
cmp dword [ebp + 0x168], 1
jne 0x500eda
mov edx, dword [ebp + 0x84]
mov dword [ebp + 0xc8], edx
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
mov eax, ebp
call fcn.00502500
cmp dword [esp + 0x6c], edi
mov esi, eax
je 0x500fc8
cmp dword [esp + 0x70], edi
je 0x500fc8
cmp dword [ebp + 0x168], edi
jne 0x500fc8
mov eax, dword [esp + 0x1c]
add eax, esi
push eax
mov eax, dword [esp + 0x28]
add ebx, eax
push ebx
push esi
push eax
mov ecx, ebp
call fcn.00502010
cmp dword [ebp + 0xb0], edi
je 0x500f40
mov ecx, dword [ebp + 0x180]
cmp ecx, dword [ebp + 0x17c]
jne 0x500f40
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
cmp dword [ebp + 0x148], edi
jne 0x500f58
mov eax, dword [esp + 0x78]
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x1a0]
mov eax, dword [ebp + 0x19c]
push ecx
mov ecx, dword [ebp + 0x198]
push edx
mov edx, dword [ebp + 0x194]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [ebp + 0x160]
push ecx
push esi
push edx
push eax
mov eax, dword [esp + 0xa0]
lea ecx, [ebp + 0xd4]
push ecx
call fcn.004f9c70
mov ebx, dword [esp + 0x18]
xor edi, edi
add dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], edi
je case.0x5009ad.9
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x5009ad.9
mov eax, 1
mov ebx, 0x64
lea ecx, [esp + 0x90]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
call fcn.00402160
lea ecx, [esp + 0x94]
call fcn.00402160
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.00505a40
cmp dword [esp + 0x58], edi
jne 0x501065
cmp dword [esp + 0x5c], edi
jne 0x501065
cmp dword [esp + 0x60], edi
jne 0x501065
mov edx, dword [esp + 0x90]
cmp dword [edx - 0xc], edi
je case.0x5009ad.9
cmp dword [esp + 0x84], edi
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov eax, esi
mov dword [esp + 0x3c], 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
je 0x5010a3
push ebx
push ecx
push 0xb
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x88], edi
je 0x5010c5
push ebx
push esi
push 0xc
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x58], edi
je 0x5010eb
mov esi, eax
mov ebx, ecx
call fcn.0053e3f5
movzx ecx, word [esp + 0x58]
mov eax, dword [eax + 0xc]
push edi
push esi
push ebx
push 1
push ecx
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
jmp 0x501135
mov edx, dword [esp + 0x90]
cmp dword [edx - 0xc], edi
je 0x501109
push 0x10
push eax
push ecx
push 1
mov eax, edx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadImageW]
jmp 0x501135
cmp dword [esp + 0x5c], edi
je 0x501125
push eax
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push ebp
call fcn.004fb420
jmp 0x501135
mov eax, dword [esp + 0x60]
cmp eax, edi
je case.0x5009ad.9
mov dword [esp + 0x3c], edi
mov ecx, eax
cmp ecx, edi
mov dword [esp + 0x14], eax
je case.0x5009ad.9
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
test eax, 0x300
jne 0x501156
xor esi, esi
jmp 0x50115b
mov esi, 1
lea eax, [esp + 0x18]
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.004f8020
mov ebx, dword [esp + 0x18]
cmp ebx, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], eax
je 0x5011a0
cmp eax, edi
je 0x5011a0
cmp esi, edi
je 0x5011a0
add ebx, dword [ebp + 0x194]
add eax, dword [ebp + 0x198]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x150]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x170], edi
je 0x501205
sub eax, ebx
jns 0x501205
cmp ecx, edi
je 0x501205
push 1
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x1ac]
mov eax, ebp
mov dword [ebp + 0xd0], 1
call fcn.00502570
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0xcc]
mov edx, dword [ebp + 0xb8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], edx
sub dword [esp + 0x38], ebx
cmp dword [ebp + 0x168], 1
jne 0x50121e
mov eax, dword [ebp + 0x84]
mov dword [ebp + 0xc8], eax
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
mov eax, ebp
call fcn.00502500
cmp dword [esp + 0x6c], edi
mov esi, eax
je 0x5012f9
cmp dword [esp + 0x70], edi
je 0x5012f9
cmp dword [ebp + 0x168], edi
jne 0x5012f9
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add ecx, esi
push ecx
add ebx, eax
push ebx
push esi
push eax
mov ecx, ebp
call fcn.00502010
cmp dword [ebp + 0xb0], edi
je 0x501284
mov edx, dword [ebp + 0x180]
cmp edx, dword [ebp + 0x17c]
jne 0x501284
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
cmp dword [ebp + 0x148], edi
jne 0x50129d
mov ecx, dword [esp + 0x78]
and ecx, 0xff00
or ecx, 8
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [ebp + 0x1a0]
mov ecx, dword [ebp + 0x19c]
push edx
mov edx, dword [ebp + 0x198]
mov edi, dword [esp + 0x74]
push eax
mov eax, dword [ebp + 0x194]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [ebp + 0x160]
push edx
push esi
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x94]
lea edx, [ebp + 0xd4]
push edx
call fcn.004f9f40
mov ebx, dword [esp + 0x18]
xor edi, edi
add dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], edi
je case.0x5009ad.9
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
jmp case.0x5009ad.9
mov eax, 0x64
mov esi, 1
lea ecx, [esp + 0x90]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], 0xff00ff
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
call fcn.00402160
lea ecx, [esp + 0x94]
call fcn.00402160
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.00505a40
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
mov dword [esp + 0x44], edi
test eax, 0x300
je 0x5013ad
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x58]
cmp ecx, edi
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
jne 0x50161e
cmp edx, edi
jne 0x50161e
cmp ebx, edi
jne 0x50161e
cmp dword [eax - 0xc], edi
jne 0x50161e
cmp dword [ebp + 0x120], edi
je case.0x5009ad.9
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [ebp + 0x120]
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge case.0x5009ad.9
push edi
push ecx
mov ecx, dword [ebp + 0x120]
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
cmp eax, edi
mov dword [esp + 0x14], eax
je case.0x5009ad.9
cmp dword [esp + 0x84], edi
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
je 0x501456
mov edx, dword [ebp + 0x124]
push 0x64
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x88], edi
je 0x501477
mov eax, dword [ebp + 0x128]
push 0x64
push esi
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
test ebx, ebx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xa8], ebx
mov edi, ecx
je 0x5014aa
test ecx, ecx
je 0x5014aa
cmp dword [esp + 0x44], 0
je 0x5014aa
mov eax, dword [ebp + 0x194]
mov edi, dword [ebp + 0x198]
add eax, ebx
mov dword [esp + 0xa8], eax
add edi, ecx
mov eax, dword [ebp + 0x150]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x170], 0
je 0x501515
sub eax, dword [esp + 0xa8]
jns 0x501515
test ecx, ecx
je 0x501515
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xd0], 1
call fcn.00502570
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ebp + 0xb8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
sub dword [esp + 0x38], ebx
cmp dword [ebp + 0x168], 1
jne 0x50152e
mov edx, dword [ebp + 0x84]
mov dword [ebp + 0xc8], edx
mov ecx, dword [esp + 0x28]
mov esi, edi
mov eax, ebp
call fcn.00502500
test ebx, ebx
mov esi, eax
je 0x50160e
cmp dword [esp + 0x1c], 0
je 0x50160e
cmp dword [ebp + 0x168], 0
jne 0x50160e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa8]
add edi, esi
push edi
add ecx, eax
push ecx
push esi
push eax
mov ecx, ebp
call fcn.00502010
cmp dword [ebp + 0xb0], 0
je 0x501596
mov edx, dword [ebp + 0x180]
cmp edx, dword [ebp + 0x17c]
jne 0x501596
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
cmp dword [ebp + 0x148], 0
jne 0x5015b0
mov ecx, dword [esp + 0x78]
and ecx, 0xff00
or ecx, 8
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [ebp + 0x1a0]
mov ecx, dword [ebp + 0x19c]
push edx
mov edx, dword [ebp + 0x198]
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [ebp + 0x194]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [ebp + 0x160]
push edx
push esi
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x40]
lea edx, [ebp + 0xd4]
push edx
call fcn.004f9f40
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov ecx, dword [esp + 0xa8]
add dword [esp + 0x24], ecx
jmp case.0x5009ad.9
cmp ecx, edi
mov dword [esp + 0x3c], esi
je 0x50162e
push ecx
call fcn.004fb4a0
jmp 0x50165c
cmp dword [eax - 0xc], edi
je 0x50163a
call fcn.004fb4c0
jmp 0x50165c
cmp edx, edi
je 0x50164e
mov eax, dword [esp + 0x94]
push edx
push ebp
call fcn.004fb4e0
jmp 0x50165c
cmp ebx, edi
je case.0x5009ad.9
mov eax, ebx
mov dword [esp + 0x3c], edi
cmp eax, edi
mov dword [esp + 0x14], eax
je case.0x5009ad.9
lea esi, [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.004f8080
mov eax, dword [esp + 0x64]
cmp eax, edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x68]
jne 0x5016ab
cmp esi, edi
jne 0x5016a3
cmp edx, ecx
mov esi, edx
jl 0x50169b
mov esi, ecx
mov eax, esi
mov dword [esp + 0x64], eax
jmp 0x5016b1
mov eax, esi
mov dword [esp + 0x64], eax
jmp 0x5016b5
cmp esi, edi
jne 0x5016b5
mov esi, eax
mov dword [esp + 0x68], esi
cmp dword [esp + 0x84], edi
je 0x5016d4
mov edx, dword [esp + 0x6c]
push 0x64
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
mov dword [esp + 0x6c], ebx
jmp 0x5016d8
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x88], edi
mov eax, dword [esp + 0x70]
je 0x5016f3
push 0x64
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x70], eax
cmp ebx, edi
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], eax
je 0x50172d
cmp eax, edi
je 0x50172d
cmp dword [esp + 0x44], edi
je 0x50172d
mov ecx, dword [ebp + 0x194]
add ecx, ebx
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebp + 0x198]
add ecx, eax
mov dword [esp + 0xac], ecx
mov eax, dword [esp + 0x18]
cdq
idiv dword [esp + 0x64]
mov edi, eax
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x68]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5017e3
mov ecx, dword [ebp + 0x168]
cmp ecx, 1
jne 0x50179f
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
imul edx, edi
lea esi, [ebp + 0x284]
lea ebx, [esp + 0xfc]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], 0
call fcn.005073b0
jmp 0x5017e3
test ecx, ecx
jne 0x5017e3
add dword [ebp + 0x184], 1
mov edi, dword [ebp + 0x184]
lea esi, [ebp + 0x284]
call fcn.00507380
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x100], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
mov ecx, eax
imul ecx, edi
cmp dword [esp + 0x54], ecx
jge 0x501999
test edi, edi
je 0x501999
test eax, eax
je 0x501999
mov eax, dword [ebp + 0x150]
mov ecx, dword [esp + 0xb0]
sub eax, ebx
add eax, ecx
cmp dword [ebp + 0x170], 0
je 0x50186f
sub eax, dword [esp + 0xa8]
jns 0x50186f
test ecx, ecx
je 0x50186f
push 1
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x1ac]
mov eax, ebp
mov dword [ebp + 0xd0], 1
call fcn.00502570
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 0xcc]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xa8]
sub dword [esp + 0x38], edx
cmp dword [ebp + 0x168], 1
jne 0x50188f
mov eax, dword [ebp + 0x84]
mov dword [ebp + 0xc8], eax
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x28]
mov esi, edi
mov eax, ebp
call fcn.00502500
cmp dword [esp + 0x6c], 0
mov esi, eax
je 0x50198e
cmp dword [esp + 0x70], 0
je 0x50198e
cmp dword [ebp + 0x168], 0
jne 0x50198e
mov ecx, dword [esp + 0xa8]
add edi, esi
push edi
add ecx, ebx
push ecx
push esi
push ebx
mov ecx, ebp
call fcn.00502010
cmp dword [ebp + 0xb0], 0
je 0x5018ff
mov edx, dword [ebp + 0x180]
cmp edx, dword [ebp + 0x17c]
jne 0x5018ff
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
jmp 0x501903
mov eax, dword [esp + 0x78]
cmp dword [ebp + 0x148], 0
jne 0x501918
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x1a0]
push ecx
mov ecx, dword [ebp + 0x19c]
push edx
mov edx, dword [ebp + 0x198]
push ecx
mov ecx, dword [ebp + 0x194]
push edx
mov edx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
mov edx, dword [ebp + 0x160]
push eax
push ecx
push esi
push ebx
push edx
lea eax, [ebp + 0xd4]
push eax
call fcn.004fa500
add ebx, dword [esp + 0xa8]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], 0
je case.0x5009ad.9
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x5009ad.9
lea ecx, [esp + 0x2c]
xor esi, esi
call fcn.00402160
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
jle case.0x5009ad.9
lea esp, [esp]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xc0]
push ecx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.005047e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x1b
call fcn.00402310
mov byte [esp + 0x198], 0x17
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x501a27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x30]
cmp dword [ecx - 0xc], edi
je 0x501afc
lea edx, [esp + 0x30]
push str.idres
push edx
call fcn.0040dd60
add esp, 8
test al, al
je 0x501a5e
push edi
push ebp
mov ecx, esi
lea edx, [esp + 0x3c]
call fcn.00503c70
mov esi, eax
jmp 0x501afc
lea eax, [esp + 0x30]
push str.iddll
push eax
call fcn.0040dd60
add esp, 8
test al, al
je 0x501a85
push edi
push ebp
xor ecx, ecx
lea edx, [esp + 0x3c]
call fcn.00503c70
mov esi, eax
jmp 0x501afc
lea ecx, [esp + 0x30]
push str.srcdll
push ecx
call fcn.0040dd60
add esp, 8
test al, al
je 0x501afc
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.004020d0
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
mov byte [esp + 0x1a4], 0x1c
call fcn.004020d0
lea edi, [esp + 0xcc]
mov byte [esp + 0x1a0], 0x17
call fcn.00505f30
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 0x1d
call fcn.00402310
mov ecx, edi
mov byte [esp + 0x198], 0x17
call fcn.004a4690
xor edi, edi
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x5019d0
cmp esi, edi
je case.0x5009ad.9
mov ecx, esi
lea ebx, [esp + 0xcc]
call fcn.004fb550
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 0x1e
call fcn.00402310
mov ecx, ebx
mov byte [esp + 0x198], 0x17
call fcn.004a4690
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 0xc]
test eax, eax
je case.0x5009ad.9
lea edx, [esp + 0x18]
push edx
push eax
mov eax, dword [ebp + 0x160]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [ebp + 0x168], 1
jne 0x501b78
mov ecx, dword [ebp + 0x84]
mov dword [ebp + 0xc8], ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push edi
mov ecx, ebp
call fcn.00502450
cmp dword [ebp + 0x168], 0
mov esi, eax
jne 0x501bc2
mov edx, dword [esp + 0x18]
add edi, esi
push edi
mov edi, dword [esp + 0x28]
add edx, edi
push edx
push esi
push edi
call fcn.00502010
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov eax, dword [ebp + 0x160]
push esi
push edi
push eax
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x501bc6
mov edi, dword [esp + 0x24]
add edi, dword [esp + 0x18]
mov dword [esp + 0x24], edi
lea esi, [esp + 0x114]
call fcn.004fb120
mov byte [esp + 0x198], 5
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501c05
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501c28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x1a8]
mov ecx, dword [edi]
mov eax, dword [ecx - 0xc]
cmp dword [esp + 0xa0], eax
jl 0x4ffc98
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x9c], edx
je 0x501c6d
mov edx, dword [esp + 0x1a4]
push 1
lea eax, [esp + 0x28]
push eax
mov eax, ebp
mov dword [ebp + 0xd0], 0
call fcn.00502570
mov ecx, dword [ebp + 0x160]
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1ac]
sub eax, dword [edx + 4]
mov ecx, dword [esp + 0x1a4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xb4]
cmp eax, dword [ebp + 0x174]
mov dword [esp + 0xa0], eax
jge 0x501d5c
mov ecx, eax
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
add eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x258]
test eax, eax
je 0x501cf1
mov ecx, dword [ebp + 0x25c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0xa0], eax
jb 0x501cf6
call fcn.00553698
mov esi, dword [ebp + 0x258]
add esi, dword [esp + 0x50]
lea ebx, [ebp + 0xb8]
mov ecx, 7
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc4]
test eax, eax
je 0x501d3a
mov esi, dword [esp + 0x1a4]
mov edx, dword [esi]
push 0x64
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [ebx], eax
mov ebx, dword [ebx]
mov eax, dword [esi]
cmp eax, ebx
jg 0x501d38
mov eax, ebx
mov dword [esi], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x50], 0x1c
add eax, 1
cmp eax, dword [ebp + 0x174]
mov dword [esp + 0xa0], eax
jl 0x501cc3
mov byte [esp + 0x198], 4
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501d84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x198], 3
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501dac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x198], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501dd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x198], 1
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501dff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x198], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x501e2a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x190]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x188
ret 0x10
push 0x80070057
call fcn.00401f70
call fcn.00426f00
push 0x80004005
call fcn.00401f70
mov edi, edi
inc edx
add edx, dword [eax]
bound eax, qword [ebx]
push eax
add byte [ecx + 3], bh
push eax
add byte [eax - 0x58ffaffd], dl
add edx, dword [eax]
sub byte [ecx], cl
push eax
add byte [eax], ch
or dword [eax], edx
sub byte [ecx], cl
push eax
add byte [edx - 0x33ffaffb], bh
add eax, 0x5e20050
push eax
add al, bh
add eax, 0x60e0050
push eax
add byte [esi + eax], ah
push eax
add byte [esi], dh
push es
push eax
add byte [esi + eax + 0x50], cl
add byte [eax], ch
or dword [eax], edx
sub byte [ecx], cl
push eax
add byte [eax], ch
or dword [eax], edx
sub byte [ecx], cl
push eax
add byte [edx + 6], ah
push eax
add byte [esi + 6], ch
push eax
add byte [edx - 0x4bffaff9], al
or dword [eax], edx
fmul dword [ebx]
push eax
add byte [esp + ecx + 0x50], ch
add cl, dl
or al, 0x50
add dh, ah
invalid