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

Disassembly:
push 0xffffffffffffffff
push 0x5aad45
mov eax, dword fs:[0]
push eax
sub esp, 0x17c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6336a0]
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 + 0x144], esi
mov dword [eax], esi
mov dword [eax + 4], esi
je 0x5223b0
mov eax, dword [ebp + 0x1a4]
jmp 0x5223bd
push esi
mov eax, 0x5d2b58
mov ecx, ebp
call fcn.0051f7d0
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.00402330
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 0x522415
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.004044f0
mov ecx, dword [ebx + 4]
mov dword [ebp + 0x150], ecx
mov edx, dword [ebx]
mov dword [ebp + 0x14c], edx
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x158], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 0x154], eax
mov ecx, dword [ebx + 4]
mov esi, dword [ebx]
sub eax, edx
mov edx, dword [ebp + 0x170]
mov dword [esp + 0x28], ecx
push 0x5d2b58
lea ecx, [esp + 0x30]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
call fcn.004023b0
push 0x5d2b58
lea ecx, [esp + 0xa8]
mov dword [esp + 0x19c], 1
call fcn.004023b0
push 0x5d2b58
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 2
call fcn.004023b0
push 0x5d2b58
lea ecx, [esp + 0x34]
mov byte [esp + 0x19c], 3
call fcn.004023b0
push 0x5d2b58
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 4
call fcn.004023b0
push esi
mov ebx, ebp
mov byte [esp + 0x19c], 5
call fcn.00524ee0
mov edx, dword [edi]
mov ecx, dword [ebp + 0xb4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0xc8]
mov dword [esp + 0x48], eax
mov eax, dword [edx - 0xc]
test eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0xa0], 0
jle 0x5244ed
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0xec]
push edx
mov ecx, edi
call fcn.00526c90
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 6
call fcn.00402330
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 0x522574
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.00526f40
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 7
call fcn.00402330
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 0x5225c5
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 0x522b27
mov eax, dword [ebp + 0xa0]
sub eax, 1
je 0x522694
sub eax, 1
je 0x522689
sub eax, 1
jne 0x5226a1
lea edi, [esp + 0x2c]
call fcn.00423a80
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx - 0xc]
xor esi, esi
test eax, eax
jle 0x5226a1
mov edi, edi
test esi, esi
jl 0x5246cd
cmp esi, eax
jg 0x5246cd
movzx edx, word [ebx + esi*2]
movzx ecx, dx
cmp cx, 0x61
jb 0x52267d
cmp esi, eax
jg 0x5246cd
movzx ecx, dx
cmp cx, 0x7a
ja 0x52267d
test esi, esi
je 0x522660
lea ecx, [esi - 1]
test ecx, ecx
jl 0x5246cd
cmp ecx, eax
jg 0x5246cd
movzx ecx, word [ebx + esi*2 - 2]
cmp cx, 0x20
jne 0x52267d
cmp esi, eax
jg 0x5246cd
movzx eax, dx
add eax, 0xffffffe0
push eax
push esi
lea ecx, [esp + 0x34]
call fcn.0044db50
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx - 0xc]
add esi, 1
cmp esi, eax
jl 0x522610
jmp 0x5226a1
lea edi, [esp + 0x2c]
call fcn.00423a80
jmp 0x52269d
lea edi, [esp + 0x2c]
call fcn.00529360
mov ebx, dword [esp + 0x2c]
cmp dword [ebx - 0xc], 0
je 0x522b27
mov ecx, dword [ebp + 0x15c]
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 + 0x15c]
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.00524cd0
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 0x522718
cmp eax, dword [esi]
jne 0x522718
mov ebx, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x522753
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 0x5246d7
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.005773f5
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 + 0x14c]
sub esi, dword [esp + 0x24]
add esi, eax
cmp dword [ebp + 0x16c], 0
je 0x5227f1
mov ecx, esi
sub ecx, dword [esp + 0x18]
jns 0x5227f1
test eax, eax
je 0x5227f1
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.00528ef0
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x19c], 9
call fcn.00402330
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 0x5227e3
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 0x522852
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 0x522852
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x52282a
cmp dword [edx - 8], 0
jl 0x5246cd
mov dword [edx - 0xc], 0
mov edx, dword [esp + 0x2c]
mov word [edx], 0
jmp 0x522852
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x522840
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 + 0x164], 0
jne 0x522a15
mov eax, dword [esp + 0x18]
test eax, eax
je 0x522aa5
mov ecx, dword [esp + 0x38]
sub ecx, eax
jne 0x5228fc
mov ecx, dword [ebx - 0xc]
lea eax, [ecx - 1]
test eax, eax
jl 0x5246cd
cmp eax, ecx
jg 0x5246cd
movzx eax, word [ebx + eax*2]
cmp ax, 0x20
jne 0x5228fc
lea ebx, [esp + 0x3c]
call fcn.004146b0
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.00402110
mov edx, dword [esp + 0x48]
add eax, 0x10
add esp, 4
mov dword [edx], eax
call fcn.00529200
mov edx, dword [ebp + 0x15c]
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 + 0xc4], 3
jne 0x522925
cmp dword [ebp + 0xcc], 0
je 0x522925
mov ecx, dword [esp + 0x48]
sub esi, dword [esp + 0x38]
mov edx, dword [ebp + 0x15c]
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 + 0x15c]
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.00524890
mov eax, dword [ebx - 0xc]
mov edx, dword [ebp + 0x15c]
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.00402110
mov ecx, dword [esp + 0x48]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
call fcn.00529200
sub dword [esp + 0x48], eax
cmp dword [ebp + 0x54], 0
je 0x522aa5
mov edx, dword [ebp + 0x5c]
xor eax, eax
cmp dword [ebp + 0x44], 0x2bc
push edx
setge al
add eax, 1
push eax
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov ecx, dword [ebp + 0x15c]
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 + 0x15c]
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 + 0x15c]
push ecx
add edx, esi
push edx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
mov ecx, dword [ebp + 0x15c]
push edi
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x522aa5
mov edx, dword [ebp + 0x80]
mov dword [ebp + 0xc4], 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 0x522a51
cmp eax, dword [esi]
jne 0x522a51
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x522a8c
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 0x5246d7
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.005773f5
add esp, 0x10
mov ecx, dword [esp + 0x44]
add edi, 0x10
mov dword [ecx], edi
mov edi, 0x20
call fcn.00529200
add dword [ebp + 0xc8], eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x24], edx
cmp dword [eax - 0xc], 0
je 0x522af5
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xcc], 1
call fcn.00524df0
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xb4]
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 0x522b19
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 0x5226ab
mov edx, dword [esp + 0xa4]
xor edi, edi
cmp dword [edx - 0xc], edi
je 0x5244a8
lea ebx, [ebp + 0x3c]
mov ecx, ebx
call fcn.00402180
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.00402110
add esp, 4
add eax, 0x10
push ebp
mov dword [esi], eax
call fcn.0051ea50
mov esi, eax
cmp esi, edi
mov dword [esp + 0x40], esi
je 0x5244a8
mov ecx, dword [ebx]
cmp dword [ecx - 0xc], edi
je 0x5231b4
mov edx, dword [esp + 0x3c]
push edx
mov edi, ebp
call fcn.005249c0
test eax, eax
je 0x5244a8
xor ecx, ecx
cmp dword [esp + 0x3c], ecx
jne case.0x522bbb.6
lea eax, [esi - 1]
cmp eax, 0x16
ja case.0x522bbb.6
jmp dword [eax*4 + 0x5246e8]
shl dword [ebp + 0x44], 1
mov eax, 0x384
cmp dword [ebp + 0x44], eax
jle case.0x522bbb.6
mov esi, ebp
mov dword [ebp + 0x44], eax
call fcn.00524bf0
jmp 0x5244a8
xor eax, eax
cmp dword [ebp + 0x48], ecx
mov esi, ebp
sete al
mov dword [ebp + 0x48], eax
call fcn.00524bf0
jmp 0x5244a8
xor edx, edx
cmp dword [ebp + 0x4c], ecx
mov esi, ebp
sete dl
mov dword [ebp + 0x4c], edx
call fcn.00524bf0
jmp 0x5244a8
xor eax, eax
cmp dword [ebp + 0x50], ecx
mov esi, ebp
sete al
mov dword [ebp + 0x50], eax
call fcn.00524bf0
jmp 0x5244a8
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], ecx
jle case.0x522bbb.6
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.00527060
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0xa
call fcn.00402330
lea ecx, [esp + 0xdc]
mov byte [esp + 0x198], 5
call fcn.00401f20
mov edx, dword [esp + 0x30]
cmp dword [edx - 0xc], 0
je 0x522e1d
lea eax, [esp + 0x30]
push str.face
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x522cf9
push ecx
lea esi, [ebp + 0x58]
mov ecx, esp
mov dword [esp + 0x50], esp
push esi
call fcn.004020f0
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0xb
call fcn.004020f0
lea edi, [esp + 0xc0]
mov byte [esp + 0x1a0], 5
call fcn.005287b0
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0xc
call fcn.00402310
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.00401f20
jmp 0x522e1d
lea eax, [esp + 0x30]
push str.size
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x522d26
mov ecx, dword [ebp + 0x40]
push 1
push ebp
lea edx, [esp + 0x3c]
call fcn.005264f0
mov dword [ebp + 0x40], eax
jmp 0x522e1d
lea ecx, [esp + 0x30]
push str.color
push ecx
call fcn.0049abd0
add esp, 8
test al, al
je 0x522d70
cmp dword [ebp + 0x144], 0
je 0x522d5a
mov ecx, dword [ebp + 0x5c]
push ebp
lea esi, [esp + 0x38]
call fcn.00526320
mov dword [ebp + 0x5c], eax
jmp 0x522e1d
push 0
mov eax, 0x5d2b58
mov ecx, ebp
call fcn.0051f7d0
mov dword [ebp + 0x5c], eax
jmp 0x522e1d
lea edx, [esp + 0x30]
push str.style
push edx
call fcn.0049abd0
add esp, 8
test al, al
je 0x522d96
lea ebx, [esp + 0x34]
mov edi, ebp
call fcn.00528870
jmp 0x522e1d
lea eax, [esp + 0x30]
push str.weight
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x522dbe
mov ecx, dword [ebp + 0x44]
push ecx
lea eax, [esp + 0x38]
call fcn.00526120
mov dword [ebp + 0x44], eax
jmp 0x522e1d
lea edx, [esp + 0x30]
push str.bkgnd
push edx
call fcn.0049abd0
add esp, 8
test al, al
je 0x522e1d
lea eax, [esp + 0x34]
push str.transparent
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x522df4
mov ecx, dword [esp + 0x34]
cmp dword [ecx - 0xc], 0
je 0x522dfd
cmp dword [ebp + 0x144], 0
jne 0x522e06
mov dword [ebp + 0x74], 1
jmp 0x522e1d
mov ecx, dword [ebp + 0x60]
push ebp
lea esi, [esp + 0x38]
mov dword [ebp + 0x74], 2
call fcn.00526320
mov dword [ebp + 0x60], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x522c34
mov esi, ebp
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x80], ecx
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x80], 1
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x80], 2
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x80], 3
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x84], 3
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x84], ecx
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x84], 1
call fcn.00524bf0
jmp 0x5244a8
mov esi, ebp
mov dword [ebp + 0x84], 2
call fcn.00524bf0
jmp 0x5244a8
mov ecx, dword [esp + 0xa4]
jmp 0x52319f
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], ecx
jle case.0x522bbb.6
jmp 0x522f00
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.00527060
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0xd
call fcn.00402330
lea ecx, [esp + 0xf0]
mov byte [esp + 0x198], 5
call fcn.00401f20
lea eax, [esp + 0x30]
push str.class
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x522fe5
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x5d2b58
call fcn.004023b0
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0xe
call fcn.004020f0
lea edi, [esp + 0x100]
mov byte [esp + 0x1a0], 5
call fcn.005287b0
lea ecx, [esp + 0xc0]
push 0x5d2a04
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.00524990
lea ecx, [esp + 0xc0]
call fcn.00401f20
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.00401f20
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x522f00
mov esi, ebp
call fcn.00524bf0
jmp 0x5244a8
lea esi, [ebp + 0xb0]
mov ecx, esi
mov dword [ebp + 0xac], 2
call fcn.00402180
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jle 0x523180
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xcc]
push edx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.00527060
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x11
call fcn.00402330
lea ecx, [esp + 0xc8]
mov byte [esp + 0x198], 5
call fcn.00401f20
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
je 0x52316f
lea ecx, [esp + 0x30]
push str.href
push ecx
call fcn.0049abd0
add esp, 8
test al, al
je 0x5230f2
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x5d2b58
mov dword [ebp + 0xac], 1
call fcn.004023b0
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0x12
call fcn.004020f0
lea edi, [esp + 0xf0]
mov byte [esp + 0x1a0], 5
call fcn.005287b0
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0x13
call fcn.00402310
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.00401f20
lea eax, [esp + 0x30]
push 0x6042d4
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x52316f
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x5d2b58
mov dword [ebp + 0xac], 2
call fcn.004023b0
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x1a4], 0x14
call fcn.004020f0
lea edi, [esp + 0xd8]
mov byte [esp + 0x1a0], 5
call fcn.005287b0
push eax
mov ecx, esi
mov byte [esp + 0x19c], 0x15
call fcn.00402310
mov ecx, edi
mov byte [esp + 0x198], 5
call fcn.00401f20
mov eax, dword [esp + 0x20]
mov eax, dword [eax - 0xc]
cmp dword [esp + 0x14], eax
jl 0x523027
add dword [ebp + 0x17c], 1
mov eax, dword [ebp + 0x17c]
cmp eax, dword [ebp + 0x178]
mov ecx, str.a:hover
je 0x52319f
mov ecx, str.a:link
mov eax, ebx
mov edx, ebp
call fcn.00524990
mov esi, ebp
call fcn.00524bf0
jmp 0x5244a8
call fcn.00555692
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x5246dc
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x90], eax
call fcn.00555692
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x5246dc
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.0051d940
mov eax, dword [esp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
mov byte [esp + 0x198], 0x17
ja case.0x52322d.9
movzx ecx, byte [eax + 0x524764]
jmp dword [ecx*4 + 0x524744]
mov eax, ebx
lea esi, [esp + 0x114]
call fcn.005247c0
mov esi, 1
lea eax, [esp + 0x114]
mov ecx, 0x6032b4
mov edx, ebp
mov dword [esp + 0x164], esi
call fcn.00524990
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov ebx, 0x64
mov dword [esp + 0x3c], esi
jle 0x5233a8
jmp 0x523280
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
call fcn.00527060
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x18
call fcn.00402330
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 0x5232d7
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 0x523391
lea edx, [esp + 0x30]
push str.width
push edx
call fcn.0049abd0
add esp, 8
test al, al
je 0x52331b
lea eax, [esp + 0x34]
call fcn.00528a10
push edi
push ebp
mov ecx, 0x64
lea edx, [esp + 0x3c]
mov dword [esp + 0x44], eax
call fcn.005264f0
mov ebx, eax
jmp 0x523391
lea eax, [esp + 0x30]
push str.size
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x52334c
mov ecx, dword [esp + 0x164]
push edi
push ebp
lea edx, [esp + 0x3c]
call fcn.005264f0
mov dword [esp + 0x164], eax
jmp 0x523391
lea ecx, [esp + 0x30]
push str.color
push ecx
call fcn.0049abd0
add esp, 8
test al, al
je 0x523391
cmp dword [ebp + 0x144], edi
je 0x52337d
mov ecx, dword [esp + 0x134]
push ebp
lea esi, [esp + 0x38]
call fcn.00526320
jmp 0x52338a
push edi
mov eax, 0x5d2b58
mov ecx, ebp
call fcn.0051f7d0
mov dword [esp + 0x134], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x523280
cmp dword [esp + 0x3c], edi
je 0x5233d6
cmp dword [ebp + 0x164], 1
jne 0x5233be
add dword [ebp + 0xc0], ebx
mov ebx, 1
jmp 0x5233d6
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 + 0x164]
cmp eax, 1
jne 0x523412
mov eax, dword [esp + 0x164]
mov ecx, dword [ebp + 0xb8]
add eax, 8
cmp ecx, eax
jle 0x5233f7
mov eax, ecx
mov edx, dword [ebp + 0x80]
add dword [esp + 0x24], ebx
mov dword [ebp + 0xb8], eax
mov dword [ebp + 0xc4], edx
jmp case.0x52322d.9
cmp eax, edi
jne 0x52344f
mov eax, dword [ebp + 0xb8]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x134]
mov esi, dword [ebp + 0x15c]
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.0051d520
add dword [esp + 0x24], ebx
jmp case.0x52322d.9
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov eax, 1
je 0x5234ae
push eax
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x28]
call fcn.0044db20
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 0x19
call fcn.00402330
lea ecx, [esp + 0xd8]
mov byte [esp + 0x198], 0x17
call fcn.00401f20
push edi
push ebp
mov ecx, 1
lea edx, [esp + 0x28]
call fcn.005264f0
mov edx, dword [esp + 0x1a4]
push eax
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xcc], edi
call fcn.00524df0
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xb4]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
jmp case.0x52322d.9
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
mov eax, 1
je 0x523542
push eax
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x28]
call fcn.0044db20
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x19c], 0x1a
call fcn.00402330
lea ecx, [esp + 0xf4]
mov byte [esp + 0x198], 0x17
call fcn.00401f20
push edi
push ebp
mov ecx, 1
lea edx, [esp + 0x28]
call fcn.005264f0
push ebp
lea edi, [esp + 0x28]
call fcn.00525000
jmp case.0x52322d.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.00402180
lea ecx, [esp + 0x94]
call fcn.00402180
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.005282c0
mov ecx, dword [esp + 0x58]
cmp ecx, edi
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
jne 0x5235e8
cmp edx, edi
jne 0x5235e8
cmp ebx, edi
jne 0x5235e8
cmp dword [eax - 0xc], edi
je case.0x52322d.9
cmp ecx, edi
mov dword [esp + 0x3c], esi
je 0x5235fc
push ecx
call fcn.0051dd50
mov dword [esp + 0x14], eax
jmp 0x523634
cmp dword [eax - 0xc], edi
je 0x52360c
call fcn.0051dd70
mov dword [esp + 0x14], eax
jmp 0x523634
cmp edx, edi
je 0x523624
mov eax, dword [esp + 0x94]
push edx
push ebp
call fcn.0051dd90
mov dword [esp + 0x14], eax
jmp 0x523634
cmp ebx, edi
je case.0x52322d.9
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x14], edi
je case.0x52322d.9
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
mov dword [esp + 0x44], edi
test eax, 0x300
je 0x523655
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.0051a930
cmp dword [esp + 0x84], edi
je 0x523689
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 0x5236a8
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 0x5236d8
cmp dword [esp + 0x70], edi
je 0x5236d8
cmp dword [esp + 0x44], edi
je 0x5236d8
mov ebx, dword [ebp + 0x190]
add ebx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x194]
add eax, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
jmp 0x5236dc
mov ebx, dword [esp + 0x18]
mov eax, dword [ebp + 0x14c]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x16c], edi
je 0x523741
sub eax, ebx
jns 0x523741
cmp ecx, edi
je 0x523741
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xcc], 1
call fcn.00524df0
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xb4]
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 + 0x164], 1
jne 0x52375a
mov edx, dword [ebp + 0x80]
mov dword [ebp + 0xc4], edx
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
mov eax, ebp
call fcn.00524d80
cmp dword [esp + 0x6c], edi
mov esi, eax
je 0x523848
cmp dword [esp + 0x70], edi
je 0x523848
cmp dword [ebp + 0x164], edi
jne 0x523848
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.00524890
cmp dword [ebp + 0xac], edi
je 0x5237c0
mov ecx, dword [ebp + 0x17c]
cmp ecx, dword [ebp + 0x178]
jne 0x5237c0
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
cmp dword [ebp + 0x144], edi
jne 0x5237d8
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 + 0x19c]
mov eax, dword [ebp + 0x198]
push ecx
mov ecx, dword [ebp + 0x194]
push edx
mov edx, dword [ebp + 0x190]
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 + 0x15c]
push ecx
push esi
push edx
push eax
mov eax, dword [esp + 0xa0]
lea ecx, [ebp + 0xd0]
push ecx
call fcn.0051c520
mov ebx, dword [esp + 0x18]
xor edi, edi
add dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], edi
je case.0x52322d.9
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x52322d.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.00402180
lea ecx, [esp + 0x94]
call fcn.00402180
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.005282c0
cmp dword [esp + 0x58], edi
jne 0x5238e5
cmp dword [esp + 0x5c], edi
jne 0x5238e5
cmp dword [esp + 0x60], edi
jne 0x5238e5
mov edx, dword [esp + 0x90]
cmp dword [edx - 0xc], edi
je case.0x52322d.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 0x523923
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 0x523945
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 0x52396b
mov esi, eax
mov ebx, ecx
call fcn.005644f1
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 0x5239b5
mov edx, dword [esp + 0x90]
cmp dword [edx - 0xc], edi
je 0x523989
push 0x10
push eax
push ecx
push 1
mov eax, edx
push eax
push edi
call dword [sym.imp.USER32.dll_LoadImageW]
jmp 0x5239b5
cmp dword [esp + 0x5c], edi
je 0x5239a5
push eax
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push ebp
call fcn.0051dcd0
jmp 0x5239b5
mov eax, dword [esp + 0x60]
cmp eax, edi
je case.0x52322d.9
mov dword [esp + 0x3c], edi
mov ecx, eax
cmp ecx, edi
mov dword [esp + 0x14], eax
je case.0x52322d.9
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
test eax, 0x300
jne 0x5239d6
xor esi, esi
jmp 0x5239db
mov esi, 1
lea eax, [esp + 0x18]
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.0051a8d0
mov ebx, dword [esp + 0x18]
cmp ebx, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], eax
je 0x523a20
cmp eax, edi
je 0x523a20
cmp esi, edi
je 0x523a20
add ebx, dword [ebp + 0x190]
add eax, dword [ebp + 0x194]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14c]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x16c], edi
je 0x523a85
sub eax, ebx
jns 0x523a85
cmp ecx, edi
je 0x523a85
push 1
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x1ac]
mov eax, ebp
mov dword [ebp + 0xcc], 1
call fcn.00524df0
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0xc8]
mov edx, dword [ebp + 0xb4]
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 + 0x164], 1
jne 0x523a9e
mov eax, dword [ebp + 0x80]
mov dword [ebp + 0xc4], eax
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
mov eax, ebp
call fcn.00524d80
cmp dword [esp + 0x6c], edi
mov esi, eax
je 0x523b79
cmp dword [esp + 0x70], edi
je 0x523b79
cmp dword [ebp + 0x164], edi
jne 0x523b79
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.00524890
cmp dword [ebp + 0xac], edi
je 0x523b04
mov edx, dword [ebp + 0x17c]
cmp edx, dword [ebp + 0x178]
jne 0x523b04
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
cmp dword [ebp + 0x144], edi
jne 0x523b1d
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 + 0x19c]
mov ecx, dword [ebp + 0x198]
push edx
mov edx, dword [ebp + 0x194]
mov edi, dword [esp + 0x74]
push eax
mov eax, dword [ebp + 0x190]
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 + 0x15c]
push edx
push esi
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x94]
lea edx, [ebp + 0xd0]
push edx
call fcn.0051c7f0
mov ebx, dword [esp + 0x18]
xor edi, edi
add dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], edi
je case.0x52322d.9
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
jmp case.0x52322d.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.00402180
lea ecx, [esp + 0x94]
call fcn.00402180
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.005282c0
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
mov dword [esp + 0x44], edi
test eax, 0x300
je 0x523c2d
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 0x523e9e
cmp edx, edi
jne 0x523e9e
cmp ebx, edi
jne 0x523e9e
cmp dword [eax - 0xc], edi
jne 0x523e9e
cmp dword [ebp + 0x11c], edi
je case.0x52322d.9
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [ebp + 0x11c]
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge case.0x52322d.9
push edi
push ecx
mov ecx, dword [ebp + 0x11c]
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
cmp eax, edi
mov dword [esp + 0x14], eax
je case.0x52322d.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 0x523cd6
mov edx, dword [ebp + 0x120]
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 0x523cf7
mov eax, dword [ebp + 0x124]
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 0x523d2a
test ecx, ecx
je 0x523d2a
cmp dword [esp + 0x44], 0
je 0x523d2a
mov eax, dword [ebp + 0x190]
mov edi, dword [ebp + 0x194]
add eax, ebx
mov dword [esp + 0xa8], eax
add edi, ecx
mov eax, dword [ebp + 0x14c]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xb0]
add eax, ecx
cmp dword [ebp + 0x16c], 0
je 0x523d95
sub eax, dword [esp + 0xa8]
jns 0x523d95
test ecx, ecx
je 0x523d95
mov edx, dword [esp + 0x1a4]
push 1
lea ecx, [esp + 0x28]
push ecx
mov eax, ebp
mov dword [ebp + 0xcc], 1
call fcn.00524df0
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xb4]
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 + 0x164], 1
jne 0x523dae
mov edx, dword [ebp + 0x80]
mov dword [ebp + 0xc4], edx
mov ecx, dword [esp + 0x28]
mov esi, edi
mov eax, ebp
call fcn.00524d80
test ebx, ebx
mov esi, eax
je 0x523e8e
cmp dword [esp + 0x1c], 0
je 0x523e8e
cmp dword [ebp + 0x164], 0
jne 0x523e8e
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.00524890
cmp dword [ebp + 0xac], 0
je 0x523e16
mov edx, dword [ebp + 0x17c]
cmp edx, dword [ebp + 0x178]
jne 0x523e16
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
cmp dword [ebp + 0x144], 0
jne 0x523e30
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 + 0x19c]
mov ecx, dword [ebp + 0x198]
push edx
mov edx, dword [ebp + 0x194]
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [ebp + 0x190]
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 + 0x15c]
push edx
push esi
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x40]
lea edx, [ebp + 0xd0]
push edx
call fcn.0051c7f0
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.0x52322d.9
cmp ecx, edi
mov dword [esp + 0x3c], esi
je 0x523eae
push ecx
call fcn.0051dd50
jmp 0x523edc
cmp dword [eax - 0xc], edi
je 0x523eba
call fcn.0051dd70
jmp 0x523edc
cmp edx, edi
je 0x523ece
mov eax, dword [esp + 0x94]
push edx
push ebp
call fcn.0051dd90
jmp 0x523edc
cmp ebx, edi
je case.0x52322d.9
mov eax, ebx
mov dword [esp + 0x3c], edi
cmp eax, edi
mov dword [esp + 0x14], eax
je case.0x52322d.9
lea esi, [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.0051a930
mov eax, dword [esp + 0x64]
cmp eax, edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x68]
jne 0x523f2b
cmp esi, edi
jne 0x523f23
cmp edx, ecx
mov esi, edx
jl 0x523f1b
mov esi, ecx
mov eax, esi
mov dword [esp + 0x64], eax
jmp 0x523f31
mov eax, esi
mov dword [esp + 0x64], eax
jmp 0x523f35
cmp esi, edi
jne 0x523f35
mov esi, eax
mov dword [esp + 0x68], esi
cmp dword [esp + 0x84], edi
je 0x523f54
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 0x523f58
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x88], edi
mov eax, dword [esp + 0x70]
je 0x523f73
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 0x523fad
cmp eax, edi
je 0x523fad
cmp dword [esp + 0x44], edi
je 0x523fad
mov ecx, dword [ebp + 0x190]
add ecx, ebx
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebp + 0x194]
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 0x524063
mov ecx, dword [ebp + 0x164]
cmp ecx, 1
jne 0x52401f
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
imul edx, edi
lea esi, [ebp + 0x280]
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.00529dc0
jmp 0x524063
test ecx, ecx
jne 0x524063
add dword [ebp + 0x180], 1
mov edi, dword [ebp + 0x180]
lea esi, [ebp + 0x280]
call fcn.00529d90
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 0x524219
test edi, edi
je 0x524219
test eax, eax
je 0x524219
mov eax, dword [ebp + 0x14c]
mov ecx, dword [esp + 0xb0]
sub eax, ebx
add eax, ecx
cmp dword [ebp + 0x16c], 0
je 0x5240ef
sub eax, dword [esp + 0xa8]
jns 0x5240ef
test ecx, ecx
je 0x5240ef
push 1
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x1ac]
mov eax, ebp
mov dword [ebp + 0xcc], 1
call fcn.00524df0
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xb4]
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 + 0x164], 1
jne 0x52410f
mov eax, dword [ebp + 0x80]
mov dword [ebp + 0xc4], eax
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x28]
mov esi, edi
mov eax, ebp
call fcn.00524d80
cmp dword [esp + 0x6c], 0
mov esi, eax
je 0x52420e
cmp dword [esp + 0x70], 0
je 0x52420e
cmp dword [ebp + 0x164], 0
jne 0x52420e
mov ecx, dword [esp + 0xa8]
add edi, esi
push edi
add ecx, ebx
push ecx
push esi
push ebx
mov ecx, ebp
call fcn.00524890
cmp dword [ebp + 0xac], 0
je 0x52417f
mov edx, dword [ebp + 0x17c]
cmp edx, dword [ebp + 0x178]
jne 0x52417f
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
jmp 0x524183
mov eax, dword [esp + 0x78]
cmp dword [ebp + 0x144], 0
jne 0x524198
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x19c]
push ecx
mov ecx, dword [ebp + 0x198]
push edx
mov edx, dword [ebp + 0x194]
push ecx
mov ecx, dword [ebp + 0x190]
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 + 0x15c]
push eax
push ecx
push esi
push ebx
push edx
lea eax, [ebp + 0xd0]
push eax
call fcn.0051cdb0
add ebx, dword [esp + 0xa8]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x3c], 0
je case.0x52322d.9
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x52322d.9
lea ecx, [esp + 0x2c]
xor esi, esi
call fcn.00402180
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], edi
jle case.0x52322d.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.00527060
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], 0x1b
call fcn.00402330
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 0x5242a7
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 0x52437c
lea edx, [esp + 0x30]
push str.idres
push edx
call fcn.0049abd0
add esp, 8
test al, al
je 0x5242de
push edi
push ebp
mov ecx, esi
lea edx, [esp + 0x3c]
call fcn.005264f0
mov esi, eax
jmp 0x52437c
lea eax, [esp + 0x30]
push str.iddll
push eax
call fcn.0049abd0
add esp, 8
test al, al
je 0x524305
push edi
push ebp
xor ecx, ecx
lea edx, [esp + 0x3c]
call fcn.005264f0
mov esi, eax
jmp 0x52437c
lea ecx, [esp + 0x30]
push str.srcdll
push ecx
call fcn.0049abd0
add esp, 8
test al, al
je 0x52437c
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.004020f0
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
mov byte [esp + 0x1a4], 0x1c
call fcn.004020f0
lea edi, [esp + 0xcc]
mov byte [esp + 0x1a0], 0x17
call fcn.005287b0
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 0x1d
call fcn.00402330
mov ecx, edi
mov byte [esp + 0x198], 0x17
call fcn.00401f20
xor edi, edi
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 0xc]
cmp dword [esp + 0x14], eax
jl 0x524250
cmp esi, edi
je case.0x52322d.9
mov ecx, esi
lea ebx, [esp + 0xcc]
call fcn.0051de00
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 0x1e
call fcn.00402330
mov ecx, ebx
mov byte [esp + 0x198], 0x17
call fcn.00401f20
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 0xc]
test eax, eax
je case.0x52322d.9
lea edx, [esp + 0x18]
push edx
push eax
mov eax, dword [ebp + 0x15c]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [ebp + 0x164], 1
jne 0x5243f8
mov ecx, dword [ebp + 0x80]
mov dword [ebp + 0xc4], ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push edi
mov ecx, ebp
call fcn.00524cd0
cmp dword [ebp + 0x164], 0
mov esi, eax
jne 0x524442
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.00524890
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov eax, dword [ebp + 0x15c]
push esi
push edi
push eax
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x524446
mov edi, dword [esp + 0x24]
add edi, dword [esp + 0x18]
mov dword [esp + 0x24], edi
lea esi, [esp + 0x114]
call fcn.0051d9d0
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 0x524485
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 0x5244a8
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 0x522518
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x9c], edx
je 0x5244ed
mov edx, dword [esp + 0x1a4]
push 1
lea eax, [esp + 0x28]
push eax
mov eax, ebp
mov dword [ebp + 0xcc], 0
call fcn.00524df0
mov ecx, dword [ebp + 0x15c]
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 + 0x170]
mov dword [esp + 0xa0], eax
jge 0x5245dc
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 + 0x254]
test eax, eax
je 0x524571
mov ecx, dword [ebp + 0x258]
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 0x524576
call fcn.0057803b
mov esi, dword [ebp + 0x254]
add esi, dword [esp + 0x50]
lea ebx, [ebp + 0xb4]
mov ecx, 7
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc0]
test eax, eax
je 0x5245ba
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 0x5245b8
mov eax, ebx
mov dword [esi], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x50], 0x1c
add eax, 1
cmp eax, dword [ebp + 0x170]
mov dword [esp + 0xa0], eax
jl 0x524543
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 0x524604
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 0x52462c
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 0x524654
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 0x52467f
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 0x5246aa
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.00401f90
call fcn.00454cf0
push 0x80004005
call fcn.00401f90
mov edi, edi
ret 0x522b