Function at 0x53b950
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x65db07
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push esi
push edi
lea eax, [ebp - 0x78]
xor edi, edi
push eax
push edi
mov ebx, ecx
push edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x78], edi
call sub.gdiplus.dll_GdipCreateStringFormat
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], edi
fldz
mov edx, dword [ebx + 4]
fst dword [ebp - 0x104]
lea ecx, [ebp - 0xec]
fst dword [ebp - 0x7c]
push ecx
fst dword [ebp - 0x80]
push edx
fstp dword [ebp - 0x28]
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [ebp - 0xac], vtable.Gdiplus::Brush.0
mov dword [ebp - 0xa4], 6
mov byte [ebp - 4], 1
lea eax, [ebp - 0x1c]
push eax
mov esi, vtable.Gdiplus::SolidBrush.0
push 0xff000000
mov dword [ebp - 0xac], esi
mov dword [ebp - 0x1c], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa8], ecx
mov byte [ebp - 4], 2
fld dword [0x67af28]
lea edx, [ebp - 0xa0]
push edx
push edi
push ecx
fstp dword [esp]
push 0xff000000
mov dword [ebp - 0xa0], edi
call sub.gdiplus.dll_GdipCreatePen1
mov dword [ebp - 0x9c], eax
mov byte [ebp - 4], 3
mov dword [ebp - 0xb8], vtable.Gdiplus::Brush.0
mov dword [ebp - 0xb0], 6
mov byte [ebp - 4], 4
mov eax, dword [ebx + 0x80]
lea ecx, [ebp - 0x1c]
push ecx
push eax
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x1c], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xb4], edx
mov byte [ebp - 4], 5
mov dword [ebp - 0xd4], vtable.Gdiplus::Brush.0
mov dword [ebp - 0xcc], 6
mov byte [ebp - 4], 6
mov eax, dword [ebx + 0x84]
lea ecx, [ebp - 0x1c]
push ecx
push eax
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x1c], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xd0], edx
mov byte [ebp - 4], 7
push 0xffffffffffffffff
lea ecx, [ebx + 0xfc]
push edi
call fcn.0053afa0
push edi
lea eax, [ebp - 0x12c]
push eax
mov ecx, ebx
call fcn.00535200
fld dword [0x67af24]
push ecx
mov ecx, dword [ebx + 0x84]
fstp dword [esp]
push ecx
lea edx, [ebp - 0x14]
push edx
mov ecx, ebx
call fcn.00534fb0
fld1
lea eax, [ebp - 0xdc]
push eax
push edi
push ecx
mov ecx, dword [ebp - 0x14]
fstp dword [esp]
push ecx
mov dword [ebp - 0xdc], edi
call sub.gdiplus.dll_GdipCreatePen1
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x78]
push 0x4000
push edx
call sub.gdiplus.dll_GdipSetStringFormatFlags
cmp eax, edi
je 0x53bb1e
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x120]
sub ecx, dword [ebp - 0x128]
mov eax, 0x51eb851f
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x30], eax
cmp eax, 0xb
jl 0x53bb4a
mov dword [ebp - 0x30], 0xb
mov eax, dword [ebx + 0x70]
cmp eax, edi
jle 0x53bb54
mov dword [ebp - 0x30], eax
mov ecx, dword [ebx + 0x6c]
fild dword [ebp - 0x30]
mov eax, dword [ebx + 0x68]
push edi
push 3
push ecx
push ecx
fstp dword [esp]
push eax
lea ecx, [ebp - 0xc0]
call fcn.00534ad0
mov byte [ebp - 4], 9
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x120]
lea eax, [eax + esi]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebx + 0x64]
add eax, dword [ebx + 0x58]
sar ecx, 1
imul eax, dword [ebx + 0xcc]
cdq
sub eax, edx
sar eax, 1
mov edx, ecx
sub edx, eax
cmp edx, esi
jle 0x53bbac
sub ecx, eax
mov dword [ebp - 0x40], ecx
jmp 0x53bbaf
mov dword [ebp - 0x40], esi
fldz
mov eax, dword [ebx + 0xc8]
fst dword [ebp - 0xf0]
fst dword [ebp - 0xf4]
fst dword [ebp - 0xf8]
fst dword [ebp - 0xfc]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
je 0x53bd5a
fstp st(0)
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0x2c]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x53bc0d
cmp eax, dword [esi - 0x10]
jne 0x53bc0d
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x53bc45
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x53bde1
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0060fbd3
add esp, 0x10
lea esi, [edi + 0x10]
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 0xb
fild dword [ebx + 0x58]
push 0
push 0
fstp dword [ebp - 0x14]
lea ecx, [ebp - 0xfc]
fldz
push ecx
mov ecx, dword [ebp - 0xc0]
fst dword [ebp - 0x6c]
fst dword [ebp - 0x68]
push 0
fstp dword [ebp - 0x64]
lea edx, [ebp - 0x6c]
fld dword [ebp - 0x14]
push edx
mov edx, dword [ebp + 8]
fstp dword [ebp - 0x60]
mov eax, dword [esi - 0xc]
push ecx
push eax
mov eax, dword [edx]
push esi
push eax
call sub.gdiplus.dll_GdipMeasureString
test eax, eax
je 0x53bc98
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
fld dword [ebp - 0xf4]
fld dword [ebp - 0x104]
fcompp
fnstsw ax
test ah, 5
jp 0x53bcdd
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0x10c], edx
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x100], edx
mov byte [ebp - 4], 9
add esi, 0xfffffff0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x53bcfd
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x20]
cmp byte [ecx + 0x15], 0
jne 0x53bd4a
mov eax, dword [ecx + 8]
cmp byte [eax + 0x15], 0
jne 0x53bd2c
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x53bd47
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x53bd20
jmp 0x53bd47
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
jne 0x53bd45
cmp ecx, dword [eax + 8]
jne 0x53bd45
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x53bd35
mov ecx, eax
mov dword [ebp - 0x20], ecx
cmp ecx, dword [ebx + 0xc8]
jne 0x53bbde
fldz
xor edi, edi
fld dword [ebp - 0x104]
mov eax, dword [ebx + 0xc8]
fadd qword [0x66f950]
fstp dword [ebp - 0x104]
fst dword [ebp - 0x110]
fst dword [ebp - 0x114]
fst dword [ebp - 0x118]
fstp dword [ebp - 0x11c]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
je 0x53c6e6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x10]
fld qword [eax + 8]
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
fstp qword [ebp - 0x134]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xe
fldz
fld qword [ebp - 0x134]
fcom st(1)
fnstsw ax
fld qword [0x66f628]
test ah, 5
jp 0x53bde6
fld qword [0x6738d0]
fld st(0)
jmp 0x53bdf0
call fcn.00404070
fld st(0)
fld qword [0x6738d0]
fxch st(1)
fadd st(3)
call fcn.006139c0
fxch st(2)
fcom st(3)
mov esi, eax
mov dword [ebp - 0x14], esi
fnstsw ax
test ah, 5
jp 0x53be0b
fld st(2)
jmp 0x53be0d
fld st(1)
fadd st(1)
fmul qword [0x6738d8]
call fcn.006139c0
fcom st(3)
cdq
mov ecx, 0x18
idiv ecx
fnstsw ax
mov edi, edx
mov dword [ebp - 0x48], edi
test ah, 5
jp 0x53be34
fld st(2)
jmp 0x53be36
fld st(1)
fadd st(1)
fmul qword [0x6738e0]
call fcn.006139c0
fcom st(3)
cdq
mov ecx, 0x3c
idiv ecx
fnstsw ax
fstp st(3)
mov ebx, edx
mov dword [ebp - 0x58], ebx
test ah, 5
jp 0x53be5f
fstp st(0)
jmp 0x53be61
fstp st(1)
faddp st(1)
fmul qword [0x6738e8]
call fcn.006139c0
cdq
mov ecx, 0x3c
idiv ecx
mov ecx, 0x700724
mov dword [ebp - 0x34], edx
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
call eax
test esi, esi
jne 0x53c0c8
test edi, edi
jne 0x53bfb2
test ebx, ebx
jne 0x53bf02
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
mov byte [ebp - 4], 0x10
push ebx
push 0xefdd
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53beca
push 0xefdd
push eax
lea ecx, [ebp - 0x1c]
call fcn.00405a10
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
push esi
push ecx
lea edx, [ebp - 0x18]
push str._d_s.
push edx
call fcn.00405ab0
add esp, 0x10
mov byte [ebp - 4], 0xe
add esi, 0xfffffff0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x53c5e1
mov ecx, dword [esi]
push esi
jmp 0x53c5da
lea edi, [eax + 0x10]
mov dword [ebp - 0x54], edi
mov byte [ebp - 4], 0x13
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x15
push 0
push 0xefdd
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53bf4a
push 0xefdd
push eax
lea ecx, [ebp - 0x54]
call fcn.00405a10
mov edi, dword [ebp - 0x54]
push 0
push 0xefde
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53bf6e
push 0xefde
push eax
lea ecx, [ebp - 0x50]
call fcn.00405a10
mov esi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
push edi
push ecx
push esi
push ebx
lea edx, [ebp - 0x18]
push str._d_s___d_s.
push edx
call fcn.00405ab0
add esp, 0x18
mov byte [ebp - 4], 0x13
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53bfa6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
lea eax, [edi - 0x10]
jmp 0x53c5c8
lea ebx, [eax + 0x10]
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x19
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 0x1b
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x5c], esi
mov byte [ebp - 4], 0x1d
push 0
push 0xefdd
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53c014
push 0xefdd
push eax
lea ecx, [ebp - 0x4c]
call fcn.00405a10
mov ebx, dword [ebp - 0x4c]
push 0
push 0xefde
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53c038
push 0xefde
push eax
lea ecx, [ebp - 0x30]
call fcn.00405a10
mov edi, dword [ebp - 0x30]
push 0
push 0xefdf
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53c05c
push 0xefdf
push eax
lea ecx, [ebp - 0x5c]
call fcn.00405a10
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
push ebx
push ecx
push edi
push edx
push esi
push eax
lea ecx, [ebp - 0x18]
push 0x673998
push ecx
call fcn.00405ab0
add esp, 0x20
mov byte [ebp - 4], 0x1b
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53c09c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x19
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c0bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
lea eax, [ebx - 0x10]
jmp 0x53c5c8
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x22
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x24
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 0x26
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 0x28
push 0
push 0xefdd
call fcn.00403bf0
mov esi, eax
add esp, 8
test esi, esi
je 0x53c223
push 6
push 0xefe
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x53c223
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53c223
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x53c223
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + edi]
mov eax, 0xd
cmp edi, ecx
jae 0x53c223
dec eax
movzx edx, word [edi]
lea edi, [edi + edx*2 + 2]
jne 0x53c182
cmp edi, ecx
jae 0x53c223
movzx eax, word [edi]
test ax, ax
je 0x53c223
mov ebx, dword [ebp - 0x2c]
mov esi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x53c1c6
push esi
lea ecx, [ebp - 0x2c]
call fcn.00401400
mov ebx, dword [ebp - 0x2c]
movzx eax, word [edi]
add edi, 2
cmp eax, 0xffffffff
jne 0x53c1e6
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53c1d6
sub eax, edx
sar eax, 1
inc eax
push eax
push edi
push esi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d510]
jmp dword [eax*4 + 0x53d500]
test esi, esi
js case.0x53cd4c.22
cmp esi, dword [ebx - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [ebx - 0xc], esi
mov word [ebx + esi*2], cx
push 0
push 0xefde
call fcn.00403bf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x53c32d
push 6
push 0xefe
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x53c32d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53c32d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53c32d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, 0xe
cmp esi, ecx
jae 0x53c32d
dec eax
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x53c285
cmp esi, ecx
jae 0x53c32d
movzx eax, word [esi]
test ax, ax
je 0x53c32d
mov ebx, dword [ebp - 0x24]
mov edi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x53c2cd
push edi
lea ecx, [ebp - 0x24]
call fcn.00401400
mov ebx, dword [ebp - 0x24]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53c2f0
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53c2e0
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push edi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d574]
jmp dword [eax*4 + 0x53d564]
test edi, edi
js case.0x53cd4c.22
cmp edi, dword [ebx - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [ebx - 0xc], edi
mov word [ebx + edi*2], cx
push 0
push 0xefdf
call fcn.00403bf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x53c43d
push 6
push 0xefe
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x53c43d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53c43d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53c43d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, 0xf
nop
cmp esi, ecx
jae 0x53c43d
dec eax
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x53c390
cmp esi, ecx
jae 0x53c43d
movzx eax, word [esi]
test ax, ax
je 0x53c43d
mov ebx, dword [ebp - 0x44]
mov edi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x53c3d8
push edi
lea ecx, [ebp - 0x44]
call fcn.00401400
mov ebx, dword [ebp - 0x44]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53c400
mov eax, esi
lea edx, [eax + 2]
jmp 0x53c3f0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53c3f0
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push edi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d5d8]
jmp dword [eax*4 + 0x53d5c8]
test edi, edi
js case.0x53cd4c.22
cmp edi, dword [ebx - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [ebx - 0xc], edi
mov word [ebx + edi*2], cx
push 0
push 0xefe0
call fcn.00403bf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x53c52d
push 6
push 0xeff
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x53c52d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53c52d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53c52d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
cmp esi, eax
jae 0x53c52d
movzx eax, word [esi]
test ax, ax
je 0x53c52d
mov ebx, dword [ebp - 0x3c]
mov edi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x53c4cf
push edi
lea ecx, [ebp - 0x3c]
call fcn.00401400
mov ebx, dword [ebp - 0x3c]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53c4f0
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53c4e0
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push edi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx edx, byte [eax + 0x53d63c]
jmp dword [edx*4 + 0x53d62c]
test edi, edi
js case.0x53cd4c.22
cmp edi, dword [ebx - 8]
jg case.0x53cd4c.22
xor eax, eax
mov dword [ebx - 0xc], edi
mov word [ebx + edi*2], ax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x48]
push edx
mov edx, dword [ebp - 0x14]
push ebx
push eax
push edi
push ecx
push esi
push edx
lea eax, [ebp - 0x18]
push 0x67aeec
push eax
call fcn.00405ab0
add esp, 0x28
mov byte [ebp - 4], 0x26
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c57e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x24
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c59e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x22
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c5be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c5e1
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x38]
fild dword [ebx + 0x58]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp + 8]
push 0
push 0
fstp dword [ebp - 0x14]
fldz
lea ecx, [ebp - 0x11c]
push ecx
fst dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xc0]
fst dword [ebp - 0x68]
push 0
fstp dword [ebp - 0x64]
fld dword [ebp - 0x14]
lea edx, [ebp - 0x6c]
push edx
fstp dword [ebp - 0x60]
mov eax, dword [esi - 0xc]
mov edx, dword [edi]
push ecx
push eax
push esi
push edx
call sub.gdiplus.dll_GdipMeasureString
test eax, eax
je 0x53c62d
mov dword [edi + 4], eax
fld dword [ebp - 0x114]
fld dword [ebp - 0x80]
fcompp
fnstsw ax
test ah, 5
jp 0x53c669
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 9
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c689
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x20]
cmp byte [ecx + 0x15], 0
jne 0x53c6d5
mov eax, dword [ecx + 8]
cmp byte [eax + 0x15], 0
jne 0x53c6b1
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x53c6d2
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x53c6a5
jmp 0x53c6d2
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
jne 0x53c6d0
lea ebx, [ebx]
cmp ecx, dword [eax + 8]
jne 0x53c6d0
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x53c6c0
mov ecx, eax
mov dword [ebp - 0x20], ecx
cmp ecx, dword [ebx + 0xc8]
jne 0x53bd97
mov ebx, dword [ebp - 0x38]
xor edi, edi
fld dword [ebp - 0x80]
mov ecx, dword [ebx + 0xc8]
fadd qword [0x66f950]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
fstp dword [ebp - 0x80]
jne 0x53c736
mov edx, dword [ebx + 0x78]
cmp dword [eax + 0xc], edx
jge 0x53c72c
mov eax, dword [eax + 8]
jmp 0x53c730
push 0x8007000e
call fcn.004011d0
push 0x80070057
call fcn.004011d0
push 0x80004005
call fcn.004011d0
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x15], 0
je 0x53c704
mov eax, dword [ebx + 0xc8]
mov dword [ebp - 0x14], ecx
cmp ecx, eax
je 0x53c750
mov edx, dword [ebx + 0x78]
cmp edx, dword [ecx + 0xc]
jl 0x53c750
lea eax, [ebp - 0x14]
jmp 0x53c756
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x70]
mov eax, dword [eax]
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x20], eax
lea eax, [ebx + 0xec]
push ecx
push eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], edi
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x53c79d
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xec], ecx
mov esi, dword [ebp - 0xe4]
fld dword [ebp - 0x80]
sub esi, dword [ebp - 0xec]
fadd dword [ebp - 0x104]
mov eax, 0x66666667
imul esi
fiadd dword [ebx + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], esi
fiadd dword [ebp - 0x14]
fstp dword [ebp - 0x54]
fild dword [ebp - 0x30]
fld dword [ebp - 0x54]
fld qword [0x67aed0]
fadd st(1)
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x53c7fb
call fcn.006139c0
add eax, 0xf
mov dword [ebp - 0xe4], eax
jmp 0x53c7fd
fstp st(0)
lea ecx, [ebp - 0x6c]
push ecx
lea eax, [ebx + 0xec]
push eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], edi
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x53c832
fld dword [ebp - 0x54]
call fcn.006139c0
add eax, dword [ebp - 0xec]
mov dword [ebp - 0xe4], eax
mov eax, 0x88888889
imul esi
mov ecx, dword [ebx + 0x74]
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x7c]
fild dword [ebp - 0x14]
mov dword [ebp - 0x48], ecx
fstp dword [ebp - 0x50]
fild dword [ebp - 0xe4]
fld dword [ebp - 0x80]
fld st(0)
fsubp st(2)
fld dword [ebp - 0x50]
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0x14]
cmp ecx, eax
jl 0x53c875
mov dword [ebp - 0x48], eax
fild dword [ebp - 0x40]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp + 8]
mov eax, dword [edx]
fstp dword [ebp - 0x94]
sub esp, 0x10
fild dword [ebp - 0x48]
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fstp dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebp - 0x94]
fstp dword [esp + 4]
fld dword [ebp - 0x14]
fstp dword [esp]
push ecx
push eax
call sub.gdiplus.dll_GdipFillRectangle
cmp eax, edi
je 0x53c8c4
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebx + 0x58]
inc eax
add edx, eax
mov dword [ebp - 0x34], eax
cmp edx, dword [ebp - 0x120]
jg 0x53d40f
lea esp, [esp]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
cmp eax, dword [ecx + 0xc8]
je 0x53d40c
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x53d3f7
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x1c]
fld qword [ecx + 8]
fldz
fcom st(1)
fnstsw ax
fld qword [0x66f628]
test ah, 0x41
jne 0x53c93b
fld qword [0x6738d0]
fld st(0)
jmp 0x53c945
fld st(0)
fld qword [0x6738d0]
fxch st(1)
fadd st(4)
call fcn.006139c0
fxch st(3)
fcom st(2)
mov esi, eax
mov dword [ebp - 0x10], esi
fnstsw ax
test ah, 5
jp 0x53c960
fld st(3)
jmp 0x53c962
fld st(1)
fadd st(1)
fmul qword [0x6738d8]
call fcn.006139c0
fcom st(2)
cdq
mov ecx, 0x18
idiv ecx
fnstsw ax
mov ebx, edx
mov dword [ebp - 0x28], ebx
test ah, 5
jp 0x53c989
fld st(3)
jmp 0x53c98b
fld st(1)
fadd st(1)
fmul qword [0x6738e0]
call fcn.006139c0
fcom st(2)
cdq
mov ecx, 0x3c
idiv ecx
fnstsw ax
fstp st(2)
mov edi, edx
mov dword [ebp - 0x18], edi
test ah, 5
jp 0x53c9b4
fstp st(0)
jmp 0x53c9b6
fstp st(2)
faddp st(1)
fmul qword [0x6738e8]
call fcn.006139c0
cdq
mov ecx, 0x3c
idiv ecx
mov ecx, 0x700724
mov dword [ebp - 0x24], edx
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
call eax
test esi, esi
jne 0x53ced0
test ebx, ebx
jne 0x53cdba
add eax, 0x10
test edi, edi
jne 0x53cb34
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x31
push edi
push 0xefdd
call fcn.00403bf0
mov edi, eax
add esp, 8
test edi, edi
je 0x53cb0f
push 6
push 0xefe
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x53cb0f
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53cb0f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53cb0f
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, 0xd
cmp esi, ecx
jae 0x53cb0f
dec eax
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x53ca61
cmp esi, ecx
jae 0x53cb0f
movzx eax, word [esi]
test ax, ax
je 0x53cb0f
mov edi, dword [ebp - 0x40]
mov ebx, eax
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x53caa9
push ebx
lea ecx, [ebp - 0x40]
call fcn.00401400
mov edi, dword [ebp - 0x40]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53cad0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53cac0
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push ebx
push edi
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d6a0]
jmp dword [eax*4 + 0x53d690]
test ebx, ebx
js case.0x53cd4c.22
cmp ebx, dword [edi - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], cx
jmp 0x53cb12
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x24]
push edi
push edx
lea eax, [ebp - 0x2c]
push str._d_s.
push eax
call fcn.00405ab0
add esp, 0x10
mov byte [ebp - 4], 0x2f
lea eax, [edi - 0x10]
jmp 0x53d059
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 0x34
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 0x36
push 0
push 0xefdd
call fcn.00403bf0
mov edi, eax
add esp, 8
test edi, edi
je 0x53cc5d
push 6
push 0xefe
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x53cc5d
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53cc5d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53cc5d
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, 0xd
cmp esi, ecx
jae 0x53cc5d
dec eax
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x53cbb7
cmp esi, ecx
jae 0x53cc5d
movzx eax, word [esi]
test ax, ax
je 0x53cc5d
mov ebx, dword [ebp - 0x3c]
mov edi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x53cbff
push edi
lea ecx, [ebp - 0x3c]
call fcn.00401400
mov ebx, dword [ebp - 0x3c]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53cc20
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53cc10
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push edi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d704]
jmp dword [eax*4 + 0x53d6f4]
test edi, edi
js case.0x53cd4c.22
cmp edi, dword [ebx - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [ebx - 0xc], edi
mov word [ebx + edi*2], cx
push 0
push 0xefde
call fcn.00403bf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x53cd6d
push 6
push 0xefe
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x53cd6d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x53cd6d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x53cd6d
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
lea ecx, [eax + esi]
mov eax, 0xe
nop
cmp esi, ecx
jae 0x53cd6d
dec eax
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x53ccc0
cmp esi, ecx
jae 0x53cd6d
movzx eax, word [esi]
test ax, ax
je 0x53cd6d
mov ebx, dword [ebp - 0x44]
mov edi, eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x53cd08
push edi
lea ecx, [ebp - 0x44]
call fcn.00401400
mov ebx, dword [ebp - 0x44]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xffffffff
jne 0x53cd30
mov eax, esi
lea edx, [eax + 2]
jmp 0x53cd20
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x53cd20
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
push edi
push ebx
call fcn.006115ec
add esp, 0x10
cmp eax, 0x50
ja case.0x53cd4c.1
movzx eax, byte [eax + 0x53d768]
jmp dword [eax*4 + 0x53d758]
test edi, edi
js case.0x53cd4c.22
cmp edi, dword [ebx - 8]
jg case.0x53cd4c.22
xor ecx, ecx
mov dword [ebx - 0xc], edi
mov word [ebx + edi*2], cx
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
push edi
push edx
push esi
push eax
lea ecx, [ebp - 0x2c]
push str._d_s___d_s.
push ecx
call fcn.00405ab0
add esp, 0x18
mov byte [ebp - 4], 0x34
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53cdae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2f
lea eax, [edi - 0x10]
jmp 0x53d059
lea ebx, [eax + 0x10]
mov dword [ebp - 0x48], ebx
mov byte [ebp - 4], 0x3a
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x58], edi
mov byte [ebp - 4], 0x3c
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x5c], esi
mov byte [ebp - 4], 0x3e
push 0
push 0xefdd
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53ce1c
push 0xefdd
push eax
lea ecx, [ebp - 0x48]
call fcn.00405a10
mov ebx, dword [ebp - 0x48]
push 0
push 0xefde
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53ce40
push 0xefde
push eax
lea ecx, [ebp - 0x58]
call fcn.00405a10
mov edi, dword [ebp - 0x58]
push 0
push 0xefdf
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53ce64
push 0xefdf
push eax
lea ecx, [ebp - 0x5c]
call fcn.00405a10
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
push ebx
push ecx
push edi
push edx
push esi
push eax
lea ecx, [ebp - 0x2c]
push 0x673998
push ecx
call fcn.00405ab0
add esp, 0x20
mov byte [ebp - 4], 0x3c
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53cea4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x3a
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53cec4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2f
lea eax, [ebx - 0x10]
jmp 0x53d059
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 0x43
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0xc4], ebx
mov byte [ebp - 4], 0x45
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0xc8], edi
mov byte [ebp - 4], 0x47
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x70], esi
mov byte [ebp - 4], 0x49
push 0
push 0xefdd
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53cf4f
push 0xefdd
push eax
lea ecx, [ebp - 0x4c]
call fcn.00405a10
push 0
push 0xefde
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53cf79
push 0xefde
push eax
lea ecx, [ebp - 0xc4]
call fcn.00405a10
mov ebx, dword [ebp - 0xc4]
push 0
push 0xefdf
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53cfa3
push 0xefdf
push eax
lea ecx, [ebp - 0xc8]
call fcn.00405a10
mov edi, dword [ebp - 0xc8]
push 0
push 0xefe0
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53cfc7
push 0xefe0
push eax
lea ecx, [ebp - 0x70]
call fcn.00405a10
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x28]
push edx
mov edx, dword [ebp - 0x10]
push ebx
push eax
push edi
push ecx
push esi
push edx
lea eax, [ebp - 0x2c]
push 0x67aeec
push eax
call fcn.00405ab0
add esp, 0x28
mov byte [ebp - 4], 0x47
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d00f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x45
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d02f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x43
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d04f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x2f
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d072
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x30]
fild dword [ebp - 0xe4]
fld dword [ebp - 0x80]
mov eax, 0xea0ea0eb
imul ecx
fld st(0)
fsubp st(2)
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x2c]
fild dword [ebp - 0x10]
mov edi, dword [ebp + 8]
push edx
mov edx, dword [ebp - 0x78]
fsubp st(2)
push edx
fxch st(1)
lea edx, [ebp - 0x144]
push edx
mov edx, dword [ebp - 0xc0]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x28]
push edx
fstp dword [ebp - 0x144]
fild dword [ebp - 0x34]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x140]
fstp dword [ebp - 0x13c]
fld dword [ebp - 0x7c]
fstp dword [ebp - 0x138]
mov eax, dword [ecx - 0xc]
push eax
mov eax, dword [edi]
push ecx
push eax
call sub.gdiplus.dll_GdipDrawString
test eax, eax
je 0x53d0fc
mov dword [edi + 4], eax
mov esi, dword [ebp - 0x38]
mov ecx, dword [esi + 0x64]
add ecx, dword [esi + 0x58]
lea eax, [esi + 0x78]
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
push eax
lea edx, [ebp - 0x148]
fstp dword [ebp - 0x10]
push edx
fld dword [ebp - 0x10]
lea ecx, [esi + 0xc4]
fst dword [ebp - 0x10]
fld dword [ebp - 0x10]
fld dword [ebp - 0x7c]
fld st(0)
fsubp st(2)
fxch st(1)
fmul qword [0x66f620]
fadd dword [ebp - 0x18]
faddp st(1)
fsubrp st(1)
fstp dword [ebp - 0x10]
call fcn.004e3c10
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [eax]
je 0x53d186
fld dword [ebp - 0x14]
mov edx, dword [ebp - 0xdc]
mov eax, dword [edi]
fld st(0)
fadd dword [ebp - 0x80]
sub esp, 0x10
fstp dword [ebp - 0x64]
fld dword [ebp - 0x10]
fst dword [esp + 0xc]
fld dword [ebp - 0x64]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push edx
push eax
call sub.gdiplus.dll_GdipDrawLine
test eax, eax
je 0x53d186
mov dword [edi + 4], eax
fld dword [ebp - 0x28]
mov edx, dword [ebp - 0xb4]
fsub dword [ebp - 0x50]
mov ebx, dword [ebp - 0x1c]
fld dword [ebp - 0x104]
mov eax, dword [ebx + 0x2c]
fld st(0)
push edx
mov edx, dword [ebp - 0x78]
fsubp st(2)
fxch st(1)
push edx
lea edx, [ebp - 0x98]
fstp dword [ebp - 0x28]
push edx
fild dword [esi + 0x58]
mov edx, dword [ebp - 0xc0]
push edx
fstp dword [ebp - 0x10]
fld dword [ebp - 0x28]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x94]
fstp dword [ebp - 0x90]
fld dword [ebp - 0x10]
fstp dword [ebp - 0x8c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov eax, dword [edi]
push eax
call sub.gdiplus.dll_GdipDrawString
test eax, eax
je 0x53d1f5
mov dword [edi + 4], eax
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebp - 0xa8]
push eax
push ecx
call sub.gdiplus.dll_GdipSetSolidFillColor
test eax, eax
je 0x53d20f
mov dword [ebp - 0xa4], eax
fld dword [0x67af24]
mov edx, dword [ebx + 0x28]
push ecx
fstp dword [esp]
push edx
lea eax, [ebp - 0x130]
push eax
mov ecx, esi
call fcn.00534fb0
mov eax, dword [eax]
mov ecx, dword [ebp - 0xa0]
push eax
push ecx
call sub.gdiplus.dll_GdipSetPenColor
test eax, eax
je 0x53d244
mov dword [ebp - 0x9c], eax
fild dword [esi + 0x54]
mov edx, dword [ebp - 0xa8]
mov eax, dword [edi]
sub esp, 0x10
fstp dword [ebp - 0x10]
fld dword [ebp - 0x28]
fld dword [ebp - 0x10]
fld st(0)
fsubp st(2)
fld dword [ebp - 0x50]
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0x28]
fild dword [esi + 0x58]
fstp dword [ebp - 0x10]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x168]
fld dword [ebp - 0x10]
fstp dword [esp + 0xc]
fld dword [ebp - 0x24]
fstp dword [esp + 8]
fld dword [ebp - 0x168]
fstp dword [esp + 4]
fld dword [ebp - 0x28]
fstp dword [esp]
push edx
push eax
call sub.gdiplus.dll_GdipFillRectangle
test eax, eax
je 0x53d2a7
mov dword [edi + 4], eax
fild dword [esi + 0x58]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [edi]
sub esp, 0x10
fstp dword [ebp - 0x10]
fild dword [esi + 0x54]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x188]
fld dword [ebp - 0x10]
fstp dword [esp + 0xc]
fld dword [ebp - 0x24]
fstp dword [esp + 8]
fld dword [ebp - 0x188]
fstp dword [esp + 4]
fld dword [ebp - 0x28]
fstp dword [esp]
push ecx
push edx
call sub.gdiplus.dll_GdipDrawRectangle
test eax, eax
je 0x53d2f3
mov dword [edi + 4], eax
mov ebx, dword [ebp - 0x34]
mov ecx, esi
mov eax, dword [ecx + 0x64]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov dword [ebp - 0x10], esi
fild dword [ebp - 0x10]
lea edi, [esi + ebx]
add edi, dword [ecx + 0x58]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x28]
fld st(0)
fld dword [ebp - 0x10]
fld st(0)
fsubp st(2)
fxch st(1)
call fcn.006139c0
fld dword [ebp - 0x54]
faddp st(2)
mov dword [ebp - 0x17c], eax
sub ebx, esi
faddp st(1)
call fcn.006139c0
mov edx, dword [ebp - 0x17c]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x2c]
push ecx
sub eax, 0x10
mov esi, esp
mov dword [ebp - 0x10], esp
push eax
mov dword [ecx + 0xc], edi
mov dword [ebp - 0x24], esi
call fcn.004011f0
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov byte [ebp - 4], 0x4f
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x15c]
call fcn.00536690
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x15c]
push ecx
mov ecx, dword [ebp - 0x38]
add ecx, 0xfc
call fcn.00539ee0
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0x64]
add edx, dword [eax + 0x58]
lea ecx, [ebp - 0x20]
add dword [ebp - 0x34], edx
call fcn.00544670
mov byte [ebp - 4], 0x2f
mov eax, dword [ebp - 0x15c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d3d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d3f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0x58]
add edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x120]
jle 0x53c8e0
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x98]
push eax
lea eax, [edi + 0xec]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
je 0x53d466
fld dword [ebp - 0x28]
mov eax, 0x66666667
imul esi
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp + 8], ecx
fisub dword [ebp + 8]
call fcn.006139c0
mov dword [edi + 0x5c], eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0xc0]
push edx
call sub.gdiplus.dll_GdipDeleteFont
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xdc]
push eax
call sub.gdiplus.dll_GdipDeletePen
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xd0]
mov esi, vtable.Gdiplus::Brush.0
push ecx
mov dword [ebp - 0xd4], esi
call sub.gdiplus.dll_GdipDeleteBrush
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xb4]
push edx
mov dword [ebp - 0xb8], esi
call sub.gdiplus.dll_GdipDeleteBrush
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xa0]
push eax
call sub.gdiplus.dll_GdipDeletePen
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xa8]
push ecx
mov dword [ebp - 0xac], esi
call sub.gdiplus.dll_GdipDeleteBrush
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x78]
push edx
call sub.gdiplus.dll_GdipDeleteStringFormat
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4