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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x51c805
mov eax, dword fs:[0]
push eax
sub esp, 0x178
push ebx
push esi
push edi
mov eax, dword [0x56a260]
xor eax, esp
push eax
lea eax, [esp + 0x188]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], esi
mov dword [eax + 4], esi
cmp dword [ebx + 0x144], esi
je 0x4cafbe
mov eax, dword [ebx + 0x1a4]
jmp 0x4cafc9
push esi
push 0x543e10
call fcn.004c3e30
mov edi, dword [ebp + 0xc]
push edi
lea ecx, [esp + 0xa0]
push str._body_
push ecx
mov dword [esp + 0x54], eax
call fcn.004c03f0
add esp, 0xc
push eax
mov ecx, edi
mov dword [esp + 0x194], esi
call fcn.0041b3b0
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
mov dword [esp + 0x190], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cb023
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.004bcf40
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
mov dword [ebx + 0x150], edx
mov eax, dword [ecx]
mov dword [ebx + 0x14c], eax
mov edx, dword [ecx + 0xc]
mov dword [ebx + 0x158], edx
mov eax, dword [ecx + 8]
mov dword [ebx + 0x154], eax
sub eax, dword [ebx + 0x14c]
mov esi, dword [ecx]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebx + 0x170]
mov dword [esp + 0xc4], ecx
push 0x543e10
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], eax
call fcn.0041abb0
push 0x543e10
lea ecx, [esp + 0xa8]
mov dword [esp + 0x194], 1
call fcn.0041abb0
push 0x543e10
lea ecx, [esp + 0x1c]
mov byte [esp + 0x194], 2
call fcn.0041abb0
push 0x543e10
lea ecx, [esp + 0x2c]
mov byte [esp + 0x194], 3
call fcn.0041abb0
push 0x543e10
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 4
call fcn.0041abb0
push esi
mov ecx, ebx
mov byte [esp + 0x194], 5
call fcn.004c95e0
mov ecx, dword [edi]
mov edx, dword [ebx + 0xc8]
mov dword [esp + 0x34], eax
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx - 0xc]
test eax, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x9c], 0
jle 0x4cd227
lea ecx, [ecx]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0xa8]
push eax
push ecx
lea edx, [esp + 0xf4]
push edx
mov ecx, ebx
call fcn.004c8270
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x194], 6
call fcn.0041b3b0
mov eax, dword [esp + 0xe8]
add eax, 0xfffffff0
mov byte [esp + 0x190], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cb190
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0xd0]
push edx
mov ecx, ebx
call fcn.004c4f20
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x194], 7
call fcn.0041b3b0
mov eax, dword [esp + 0xcc]
add eax, 0xfffffff0
mov byte [esp + 0x190], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cb1e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x24]
cmp dword [edi - 0xc], 0
je 0x4cb7bb
mov eax, dword [ebx + 0xa0]
sub eax, 1
je 0x4cb2b1
sub eax, 1
je 0x4cb2a6
sub eax, 1
jne 0x4cb2be
lea ecx, [esp + 0x24]
call fcn.0041ef90
mov edi, dword [esp + 0x24]
mov eax, dword [edi - 0xc]
xor esi, esi
test eax, eax
jle 0x4cb2be
test esi, esi
jl 0x4cd3f7
cmp esi, eax
jg 0x4cd3f7
movzx edx, word [edi + esi*2]
movzx ecx, dx
cmp cx, 0x61
jb 0x4cb29a
cmp esi, eax
jg 0x4cd3f7
movzx ecx, dx
cmp cx, 0x7a
ja 0x4cb29a
test esi, esi
je 0x4cb27d
lea ecx, [esi - 1]
test ecx, ecx
jl 0x4cd3f7
cmp ecx, eax
jg 0x4cd3f7
movzx ecx, word [edi + esi*2 - 2]
cmp cx, 0x20
jne 0x4cb29a
cmp esi, eax
jg 0x4cd3f7
movzx eax, dx
add eax, 0xffffffe0
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.004bfd20
mov edi, dword [esp + 0x24]
mov eax, dword [edi - 0xc]
add esi, 1
cmp esi, eax
jl 0x4cb22d
jmp 0x4cb2be
lea ecx, [esp + 0x24]
call fcn.0041ef90
jmp 0x4cb2ba
lea ecx, [esp + 0x24]
call fcn.004281d0
mov edi, dword [esp + 0x24]
cmp dword [edi - 0xc], 0
je 0x4cb7bb
mov ecx, dword [ebx + 0x15c]
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
mov eax, dword [ebx + 0x15c]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
push ecx
push edx
mov ecx, ebx
call fcn.004be290
mov esi, dword [esp + 0x24]
mov ecx, dword [esi - 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4cb334
cmp eax, dword [esi]
jne 0x4cb334
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4cb36f
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 0x4cd401
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.004f2ced
add esp, 0x10
lea esi, [edi + 0x10]
mov dword [esp + 0x30], esi
mov edi, dword [ebx + 0x14c]
sub edi, dword [esp + 0x34]
mov eax, dword [esp + 0xa8]
add edi, eax
cmp dword [ebx + 0x16c], 0
mov byte [esp + 0x190], 8
je 0x4cb40f
mov ecx, edi
sub ecx, dword [esp + 0x1c]
jns 0x4cb40f
test eax, eax
je 0x4cb40f
lea edx, [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0xe0]
push edx
mov ecx, ebx
mov dword [esp + 0x24], edi
call fcn.004c5f90
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x194], 9
call fcn.0041b3b0
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
mov byte [esp + 0x190], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cb401
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
jmp 0x4cb470
mov edx, dword [esp + 0x24]
cmp dword [edx - 0xc], 0
mov ecx, dword [edx - 0x10]
lea eax, [edx - 0x10]
mov dword [esp + 0x14], ecx
je 0x4cb470
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x4cb448
cmp dword [edx - 8], 0
jl 0x4cd3f7
mov dword [edx - 0xc], 0
mov edx, dword [esp + 0x24]
mov word [edx], 0
jmp 0x4cb470
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cb45e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x164], 0
jne 0x4cb6a1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4cb73c
mov ecx, dword [esp + 0x3c]
sub ecx, eax
jne 0x4cb516
mov ecx, dword [esi - 0xc]
lea eax, [ecx - 1]
test eax, eax
jl 0x4cd3f7
cmp eax, ecx
jg 0x4cd3f7
movzx eax, word [esi + eax*2]
cmp ax, 0x20
jne 0x4cb516
lea ecx, [esp + 0x30]
call fcn.00428320
mov esi, dword [esp + 0x30]
push 0x20
push ecx
mov dword [esp + 0x1c], esp
lea eax, [esi - 0x10]
mov dword [esp + 0x1c], esp
push eax
call fcn.0041b430
mov edx, dword [esp + 0x20]
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [edx], eax
call fcn.004bfbf0
mov edx, dword [ebx + 0x15c]
lea ecx, [esp + 0x104]
push ecx
mov dword [esp + 0x48], eax
mov eax, dword [esi - 0xc]
push eax
push esi
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x104]
sub eax, dword [esp + 0x1c]
add dword [esp + 0x3c], eax
cmp dword [ebx + 0xc4], 3
jne 0x4cb53f
cmp dword [ebx + 0xcc], 0
je 0x4cb53f
mov ecx, dword [esp + 0x44]
sub edi, dword [esp + 0x3c]
mov edx, dword [ebx + 0x15c]
push ecx
push edi
push edx
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x3c], eax
mov eax, dword [esi - 0xc]
mov edx, dword [ebx + 0x15c]
lea ecx, [esp + 0x1c]
push ecx
push eax
push esi
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
add ecx, eax
push ecx
add edx, edi
push edx
push eax
push edi
mov ecx, ebx
call fcn.004caba0
mov eax, dword [esi - 0xc]
mov ecx, dword [ebx + 0x15c]
push eax
mov eax, dword [esp + 0x14]
push esi
push eax
push edi
push ecx
call dword [sym.imp.GDI32.dll_TextOutW]
push 0x20
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
lea edi, [esi - 0x10]
mov dword [esp + 0x1c], esp
mov dword [esp + 0x48], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x4cb5c9
cmp eax, dword [edi]
jne 0x4cb5c9
mov dword [esp + 0x1c], edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4cb60a
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4cd401
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.004f2ced
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
add ecx, 0x10
mov dword [edx], ecx
mov ecx, ebx
call fcn.004bfbf0
sub dword [esp + 0x44], eax
cmp dword [ebx + 0x54], 0
je 0x4cb73c
mov eax, dword [ebx + 0x5c]
xor ecx, ecx
cmp dword [ebx + 0x44], 0x2bc
push eax
setge cl
add ecx, 1
push ecx
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov edx, dword [ebx + 0x15c]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebx + 0x15c]
push 0
mov edi, eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [ebx + 0x15c]
add ecx, edx
push ecx
push eax
call dword [sym.imp.GDI32.dll_LineTo]
mov ecx, dword [ebx + 0x15c]
push edi
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x4cb73c
mov edx, dword [ebx + 0x80]
mov dword [ebx + 0xc4], edx
push 0x20
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea edi, [esi - 0x10]
mov dword [esp + 0x1c], esp
mov dword [esp + 0x48], esp
call edx
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x4cb6e1
cmp eax, dword [edi]
jne 0x4cb6e1
mov dword [esp + 0x1c], edi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4cb722
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4cd401
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax + 2]
push edx
add edi, 0x10
push edi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.004f2ced
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
add ecx, 0x10
mov dword [edx], ecx
mov ecx, ebx
call fcn.004bfbf0
add dword [ebx + 0xc8], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x34], eax
cmp dword [ecx - 0xc], 0
je 0x4cb789
mov edx, dword [ebp + 8]
push edx
push 1
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
mov dword [ebx + 0xcc], 1
call fcn.004ca0b0
mov ecx, dword [esp + 0x34]
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
add esi, 0xfffffff0
mov byte [esp + 0x190], 5
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cb7ad
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0
jne 0x4cb2c8
mov ecx, dword [esp + 0xa4]
cmp dword [ecx - 0xc], 0
je 0x4cd1e9
mov ecx, dword [ebx + 0x3c]
cmp dword [ecx - 0xc], 0
mov esi, dword [ecx - 0x10]
lea edi, [ebx + 0x3c]
lea eax, [ecx - 0x10]
je 0x4cb825
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x4cb801
cmp dword [ecx - 8], 0
jl 0x4cd3f7
mov dword [ecx - 0xc], 0
mov edx, dword [edi]
mov word [edx], 0
jmp 0x4cb825
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cb817
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
add eax, 0x10
mov dword [edi], eax
xor eax, eax
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa8]
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.0041b430
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.004c1130
mov esi, eax
test esi, esi
je 0x4cd1e9
mov edx, dword [edi]
cmp dword [edx - 0xc], 0
je 0x4cbef5
mov eax, dword [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004caca0
test eax, eax
je 0x4cd1e9
xor eax, eax
cmp dword [esp + 0x30], eax
jne case.0x4cb89d.5
add esi, 0xffffffff
cmp esi, 0x16
ja case.0x4cb89d.5
jmp dword [esi*4 + 0x4cd410]
shl dword [ebx + 0x44], 1
mov eax, 0x384
cmp dword [ebx + 0x44], eax
jle case.0x4cb89d.5
mov ecx, ebx
mov dword [ebx + 0x44], eax
call fcn.004be9f0
jmp 0x4cd1e9
xor ecx, ecx
cmp dword [ebx + 0x48], eax
sete cl
mov dword [ebx + 0x48], ecx
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
xor edx, edx
cmp dword [ebx + 0x4c], eax
mov ecx, ebx
sete dl
mov dword [ebx + 0x4c], edx
call fcn.004be9f0
jmp 0x4cd1e9
xor ecx, ecx
cmp dword [ebx + 0x50], eax
sete cl
mov dword [ebx + 0x50], ecx
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
mov edx, dword [esp + 0x18]
cmp dword [edx - 0xc], eax
jle case.0x4cb89d.5
mov edi, 1
jmp 0x4cb920
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xe8]
push eax
mov ecx, ebx
call fcn.004c5050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 0xa
call fcn.0041b3b0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x190], 5
call fcn.00402880
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 0xc], 0
je 0x4cbb1d
lea edx, [esp + 0x28]
push str.face
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cb9f1
push ecx
lea esi, [ebx + 0x58]
mov ecx, esp
mov dword [esp + 0x34], esp
push esi
call fcn.0041f220
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
mov byte [esp + 0x19c], 0xb
call fcn.0041f220
lea ecx, [esp + 0xb4]
push ecx
mov ecx, ebx
mov byte [esp + 0x19c], 5
call fcn.004c1560
push eax
mov ecx, esi
mov byte [esp + 0x194], 0xc
call fcn.0041b390
lea ecx, [esp + 0xac]
mov byte [esp + 0x190], 5
call fcn.00402880
jmp 0x4cbb1d
lea edx, [esp + 0x28]
push str.size
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cba20
mov eax, dword [ebx + 0x40]
push edi
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call fcn.004c4740
mov dword [ebx + 0x40], eax
jmp 0x4cbb1d
lea edx, [esp + 0x28]
push str.color
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cba6d
cmp dword [ebx + 0x144], 0
je 0x4cba57
mov eax, dword [ebx + 0x5c]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebx
call fcn.004c4560
mov dword [ebx + 0x5c], eax
jmp 0x4cbb1d
push 0
push 0x543e10
mov ecx, ebx
call fcn.004c3e30
mov dword [ebx + 0x5c], eax
jmp 0x4cbb1d
lea edx, [esp + 0x28]
push str.style
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cba94
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.004bf9f0
jmp 0x4cbb1d
lea ecx, [esp + 0x28]
push str.weight
push ecx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbabf
mov edx, dword [ebx + 0x44]
push edx
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004bef90
mov dword [ebx + 0x44], eax
jmp 0x4cbb1d
lea ecx, [esp + 0x28]
push str.bkgnd
push ecx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbb1d
lea edx, [esp + 0x2c]
push str.transparent
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbaf5
mov eax, dword [esp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x4cbafe
cmp dword [ebx + 0x144], 0
jne 0x4cbb03
mov dword [ebx + 0x74], edi
jmp 0x4cbb1d
mov ecx, dword [ebx + 0x60]
push ecx
lea edx, [esp + 0x30]
push edx
mov ecx, ebx
mov dword [ebx + 0x74], 2
call fcn.004c4560
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax - 0xc]
cmp dword [esp + 0x10], eax
jl 0x4cb920
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x80], eax
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x80], 1
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x80], 2
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x80], 3
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x84], 3
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x84], eax
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x84], 1
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, ebx
mov dword [ebx + 0x84], 2
call fcn.004be9f0
jmp 0x4cd1e9
mov ecx, dword [esp + 0xa4]
push edi
push ecx
mov ecx, ebx
call fcn.004c95b0
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
mov edx, dword [esp + 0x18]
cmp dword [edx - 0xc], eax
jle case.0x4cb89d.5
jmp 0x4cbc10
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xe4]
push eax
mov ecx, ebx
call fcn.004c5050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 0xd
call fcn.0041b3b0
lea ecx, [esp + 0xd8]
mov byte [esp + 0x190], 5
call fcn.00402880
lea ecx, [esp + 0x28]
push str.class
push ecx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbd00
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x543e10
call fcn.0041abb0
push ecx
lea edx, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x1a0], 0xe
call fcn.0041f220
lea eax, [esp + 0xfc]
push eax
mov ecx, ebx
mov byte [esp + 0x1a0], 5
call fcn.004c1560
push eax
lea ecx, [esp + 0xc0]
push 0x53162c
push ecx
mov byte [esp + 0x1a0], 0xf
call fcn.004c03f0
add esp, 0xc
mov eax, dword [eax]
push eax
mov ecx, ebx
mov byte [esp + 0x198], 0x10
call fcn.004c95b0
lea ecx, [esp + 0xb8]
call fcn.00402880
lea ecx, [esp + 0xf0]
mov byte [esp + 0x190], 5
call fcn.00402880
mov edx, dword [esp + 0x18]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x10], eax
jl 0x4cbc10
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
lea esi, [ebx + 0xb0]
mov ecx, esi
mov dword [ebx + 0xac], 2
call fcn.0041b500
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jle 0x4cbeaf
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xcc]
push ecx
mov ecx, ebx
call fcn.004c5050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 0x11
call fcn.0041b3b0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x190], 5
call fcn.00402880
mov edx, dword [esp + 0x28]
cmp dword [edx - 0xc], 0
je 0x4cbe9e
lea eax, [esp + 0x28]
push str.href
push eax
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbe19
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x543e10
mov dword [ebx + 0xac], 1
call fcn.0041abb0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov byte [esp + 0x19c], 0x12
call fcn.0041f220
lea eax, [esp + 0xe8]
push eax
mov ecx, ebx
mov byte [esp + 0x19c], 5
call fcn.004c1560
push eax
mov ecx, esi
mov byte [esp + 0x194], 0x13
call fcn.0041b390
lea ecx, [esp + 0xe0]
mov byte [esp + 0x190], 5
call fcn.00402880
lea ecx, [esp + 0x28]
push 0x53c3bc
push ecx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cbe9e
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x543e10
mov dword [ebx + 0xac], 2
call fcn.0041abb0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
mov byte [esp + 0x19c], 0x14
call fcn.0041f220
lea eax, [esp + 0xd0]
push eax
mov ecx, ebx
mov byte [esp + 0x19c], 5
call fcn.004c1560
push eax
mov ecx, esi
mov byte [esp + 0x194], 0x15
call fcn.0041b390
lea ecx, [esp + 0xc8]
mov byte [esp + 0x190], 5
call fcn.00402880
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
cmp dword [esp + 0x10], eax
jl 0x4cbd42
add dword [ebx + 0x17c], 1
mov eax, dword [ebx + 0x17c]
cmp eax, dword [ebx + 0x178]
push edi
jne 0x4cbedd
push str.a:hover
mov ecx, ebx
call fcn.004c95b0
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
push str.a:link
mov ecx, ebx
call fcn.004c95b0
mov ecx, ebx
call fcn.004be9f0
jmp 0x4cd1e9
call fcn.004daeb7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4cd406
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x90], eax
call fcn.004daeb7
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4cd406
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x94], eax
lea ecx, [esp + 0x10c]
call fcn.004bf400
lea eax, [esi - 6]
cmp eax, 0xe
mov byte [esp + 0x190], 0x17
ja case.0x4cbf6a.9
movzx ecx, byte [eax + 0x4cd48c]
jmp dword [ecx*4 + 0x4cd46c]
push edi
lea ecx, [esp + 0x110]
call fcn.004c1300
lea edx, [esp + 0x10c]
push edx
push 0x53c36c
mov ecx, ebx
mov dword [esp + 0x164], 1
call fcn.004c95b0
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
mov esi, 0x64
lea edi, [esi - 0x63]
jle 0x4cc0eb
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xf0]
push ecx
mov ecx, ebx
call fcn.004c5050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 0x18
call fcn.0041b3b0
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
mov byte [esp + 0x190], 0x17
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cc00e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 0xc], 0
je 0x4cc0d6
lea edx, [esp + 0x28]
push str.width
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cc057
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.004bfbb0
push 0
push 0x64
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
mov edi, eax
call fcn.004c4740
mov esi, eax
jmp 0x4cc0d6
lea edx, [esp + 0x28]
push str.size
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cc08c
mov eax, dword [esp + 0x15c]
push 0
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call fcn.004c4740
mov dword [esp + 0x15c], eax
jmp 0x4cc0d6
lea edx, [esp + 0x28]
push str.color
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cc0d6
cmp dword [ebx + 0x144], 0
je 0x4cc0c1
mov eax, dword [esp + 0x12c]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebx
call fcn.004c4560
jmp 0x4cc0cf
push 0
push 0x543e10
mov ecx, ebx
call fcn.004c3e30
mov dword [esp + 0x12c], eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x10], eax
jl 0x4cbfb3
test edi, edi
je 0x4cc115
cmp dword [ebx + 0x164], 1
jne 0x4cc101
add dword [ebx + 0xc0], esi
mov esi, 1
jmp 0x4cc115
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
push 0x64
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, eax
mov eax, dword [ebx + 0x164]
cmp eax, 1
jne 0x4cc151
mov eax, dword [esp + 0x15c]
mov ecx, dword [ebx + 0xb8]
add eax, 8
cmp ecx, eax
jle 0x4cc136
mov eax, ecx
mov edx, dword [ebx + 0x80]
add dword [esp + 0x34], esi
mov dword [ebx + 0xb8], eax
mov dword [ebx + 0xc4], edx
jmp case.0x4cbf6a.9
test eax, eax
jne 0x4cc195
mov eax, dword [ebx + 0xb8]
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
mov edx, dword [esp + 0x15c]
push edx
push 1
sar eax, 1
add eax, ecx
mov ecx, dword [esp + 0x134]
push ecx
mov ecx, dword [esp + 0x40]
push eax
lea edx, [esi + ecx]
push edx
push eax
mov eax, dword [ebx + 0x15c]
push ecx
push eax
lea ecx, [ebx + 0xd0]
call fcn.004d20f0
add dword [esp + 0x34], esi
jmp case.0x4cbf6a.9
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
mov eax, 1
je 0x4cc1f5
push eax
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0x20]
call fcn.0041eff0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x194], 0x19
call fcn.0041b3b0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x190], 0x17
call fcn.00402880
push 0
push 1
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
call fcn.004c4740
mov ecx, dword [ebp + 8]
push ecx
push eax
lea edx, [esp + 0x3c]
push edx
mov ecx, ebx
mov dword [ebx + 0xcc], 0
call fcn.004ca0b0
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx + 0xc8]
mov edx, dword [ebx + 0xb4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
jmp case.0x4cbf6a.9
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
mov eax, 1
je 0x4cc28b
push eax
lea edx, [esp + 0xf0]
push edx
lea ecx, [esp + 0x20]
call fcn.0041eff0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x194], 0x1a
call fcn.0041b3b0
lea ecx, [esp + 0xec]
mov byte [esp + 0x190], 0x17
call fcn.00402880
push 0
push 1
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
call fcn.004c4740
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebx
call fcn.004be3d0
jmp case.0x4cbf6a.9
xor esi, esi
mov ecx, 1
mov eax, 0x64
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x8c], 0xff00ff
mov dword [esp + 0x80], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
call fcn.0041b500
lea ecx, [esp + 0x94]
call fcn.0041b500
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.004c5600
mov eax, dword [esp + 0x58]
cmp eax, esi
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
jne 0x4cc336
cmp edx, esi
jne 0x4cc336
cmp edi, esi
jne 0x4cc336
cmp dword [ecx - 0xc], esi
je case.0x4cbf6a.9
cmp eax, esi
mov dword [esp + 0x14], 1
je 0x4cc352
push eax
mov ecx, ebx
call fcn.004be130
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x4cc397
cmp dword [ecx - 0xc], esi
je 0x4cc367
push ecx
mov ecx, ebx
call fcn.004be160
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x4cc397
cmp edx, esi
je 0x4cc383
mov ecx, dword [esp + 0x94]
push ecx
push edx
mov ecx, ebx
call fcn.004be180
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x4cc397
cmp edi, esi
je case.0x4cbf6a.9
xor esi, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov edx, edi
cmp edx, esi
je case.0x4cbf6a.9
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.004be460
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [ebx + 0xd0]
push edx
mov dword [esp + 0x38], edi
call fcn.004d0820
cmp dword [esp + 0x84], 0
je 0x4cc3e6
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x1c]
push 0x64
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, eax
mov dword [esp + 0x6c], esi
jmp 0x4cc3ea
mov esi, dword [esp + 0x6c]
cmp dword [esp + 0x88], 0
mov eax, dword [esp + 0x70]
je 0x4cc40a
mov ecx, dword [esp + 0x20]
push 0x64
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x70], eax
test esi, esi
je 0x4cc430
test eax, eax
je 0x4cc430
test edi, edi
je 0x4cc430
mov ecx, dword [ebx + 0x190]
mov edx, dword [ebx + 0x194]
add ecx, esi
add edx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x4cc434
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x14c]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0xa8]
sub eax, esi
add eax, edx
cmp dword [ebx + 0x16c], 0
je 0x4cc499
sub eax, ecx
jns 0x4cc499
test edx, edx
je 0x4cc499
mov edx, dword [ebp + 8]
push edx
push 1
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
mov dword [ebx + 0xcc], 1
call fcn.004ca0b0
mov ecx, dword [ebx + 0xc8]
mov esi, dword [esp + 0x34]
mov edx, dword [ebx + 0xb4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x3c], edx
sub dword [esp + 0x3c], ecx
cmp dword [ebx + 0x164], 1
jne 0x4cc4b2
mov eax, dword [ebx + 0x80]
mov dword [ebx + 0xc4], eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x38]
push ecx
push edx
mov ecx, ebx
call fcn.004be340
cmp dword [esp + 0x6c], 0
mov edi, eax
je 0x4cc599
cmp dword [esp + 0x70], 0
je 0x4cc599
cmp dword [ebx + 0x164], 0
jne 0x4cc599
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add eax, edi
push eax
add ecx, esi
push ecx
push edi
push esi
mov ecx, ebx
call fcn.004caba0
cmp dword [ebx + 0xac], 0
je 0x4cc520
mov edx, dword [ebx + 0x17c]
cmp edx, dword [ebx + 0x178]
jne 0x4cc520
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
jmp 0x4cc524
mov eax, dword [esp + 0x78]
cmp dword [ebx + 0x144], 0
jne 0x4cc539
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx + 0x19c]
push ecx
mov ecx, dword [ebx + 0x198]
push edx
mov edx, dword [ebx + 0x194]
push ecx
mov ecx, dword [ebx + 0x190]
push edx
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [ebx + 0x15c]
push eax
push ecx
push edi
push esi
push edx
lea ecx, [ebx + 0xd0]
call fcn.004d2c60
add esi, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x34], esi
je case.0x4cbf6a.9
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x4cbf6a.9
xor edi, edi
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 + 0x78], edi
mov dword [esp + 0x7c], edi
call fcn.0041b500
lea ecx, [esp + 0x94]
call fcn.0041b500
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.004c5600
cmp dword [esp + 0x58], edi
jne 0x4cc63d
cmp dword [esp + 0x5c], edi
jne 0x4cc63d
cmp dword [esp + 0x60], edi
jne 0x4cc63d
mov eax, dword [esp + 0x90]
cmp dword [eax - 0xc], edi
je case.0x4cbf6a.9
cmp dword [esp + 0x84], edi
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x70]
mov eax, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
je 0x4cc678
push 0x64
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 + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x88], edi
je 0x4cc69b
push 0x64
push esi
push 0xc
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x58], edi
je 0x4cc6b3
push eax
push ecx
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, ebx
call fcn.004be050
mov edx, eax
jmp 0x4cc703
mov edx, dword [esp + 0x90]
cmp dword [edx - 0xc], edi
je 0x4cc6cf
push eax
push ecx
mov eax, edx
push eax
mov ecx, ebx
call fcn.004be090
mov edx, eax
jmp 0x4cc703
cmp dword [esp + 0x5c], edi
je 0x4cc6ef
mov edx, dword [esp + 0x94]
push edx
push eax
mov eax, dword [esp + 0x64]
push ecx
push eax
mov ecx, ebx
call fcn.004be0b0
mov edx, eax
jmp 0x4cc703
cmp dword [esp + 0x60], edi
je case.0x4cbf6a.9
mov edx, dword [esp + 0x60]
xor edi, edi
mov dword [esp + 0x14], edi
cmp edx, edi
mov dword [esp + 0x40], edx
je case.0x4cbf6a.9
lea ecx, [esp + 0x54]
push ecx
mov ecx, ebx
call fcn.004be460
mov edi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [ebx + 0xd0]
push edx
mov dword [esp + 0x38], edi
call fcn.004d07a0
mov esi, dword [esp + 0x1c]
test esi, esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
je 0x4cc762
test eax, eax
je 0x4cc762
test edi, edi
je 0x4cc762
add esi, dword [ebx + 0x190]
add eax, dword [ebx + 0x194]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x14c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
sub eax, edi
add eax, ecx
cmp dword [ebx + 0x16c], 0
je 0x4cc7c7
sub eax, esi
jns 0x4cc7c7
test ecx, ecx
je 0x4cc7c7
mov ecx, dword [ebp + 8]
push ecx
push 1
lea edx, [esp + 0x3c]
push edx
mov ecx, ebx
mov dword [ebx + 0xcc], 1
call fcn.004ca0b0
mov edi, dword [esp + 0x34]
mov eax, dword [ebx + 0xc8]
mov ecx, dword [ebx + 0xb4]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
sub dword [esp + 0x3c], esi
cmp dword [ebx + 0x164], 1
jne 0x4cc7e0
mov edx, dword [ebx + 0x80]
mov dword [ebx + 0xc4], edx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x38]
push eax
push ecx
mov ecx, ebx
call fcn.004be340
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x10], eax
je 0x4cc8bd
cmp dword [esp + 0x70], 0
je 0x4cc8bd
cmp dword [ebx + 0x164], 0
jne 0x4cc8bd
mov edx, dword [esp + 0x20]
add edx, eax
push edx
add esi, edi
push esi
push eax
push edi
mov ecx, ebx
call fcn.004caba0
cmp dword [ebx + 0xac], 0
je 0x4cc84c
mov eax, dword [ebx + 0x17c]
cmp eax, dword [ebx + 0x178]
jne 0x4cc84c
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
jmp 0x4cc850
mov eax, dword [esp + 0x78]
cmp dword [ebx + 0x144], 0
jne 0x4cc865
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx + 0x19c]
push ecx
mov ecx, dword [ebx + 0x198]
push edx
mov edx, dword [ebx + 0x194]
push ecx
mov ecx, dword [ebx + 0x190]
push edx
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [ebx + 0x15c]
push edx
push eax
push edi
push ecx
lea ecx, [ebx + 0xd0]
call fcn.004d2f30
mov esi, dword [esp + 0x1c]
add edi, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x34], edi
je case.0x4cbf6a.9
mov edx, dword [esp + 0x40]
push edx
call dword [sym.imp.USER32.dll_DestroyIcon]
jmp case.0x4cbf6a.9
xor edi, edi
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.0041b500
lea ecx, [esp + 0x94]
call fcn.0041b500
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.004c5600
mov eax, dword [esp + 0x7c]
or eax, dword [esp + 0x78]
mov dword [esp + 0x30], edi
test eax, 0x300
je 0x4cc976
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x58]
cmp ecx, edi
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x5c]
jne 0x4ccbda
cmp eax, edi
jne 0x4ccbda
cmp dword [esp + 0x60], edi
jne 0x4ccbda
cmp dword [edx - 0xc], edi
jne 0x4ccbda
cmp dword [ebx + 0x11c], edi
je case.0x4cbf6a.9
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov edx, dword [ebx + 0x11c]
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge case.0x4cbf6a.9
mov eax, dword [ebx + 0x11c]
push edi
push ecx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
cmp eax, edi
mov dword [esp + 0x40], eax
je case.0x4cbf6a.9
cmp dword [esp + 0x84], edi
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
je 0x4cca21
mov ecx, dword [ebx + 0x120]
push 0x64
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x88], edi
je 0x4cca46
mov edx, dword [esp + 0x70]
mov eax, dword [ebx + 0x124]
push 0x64
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
cmp esi, edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], eax
je 0x4cca74
cmp eax, edi
je 0x4cca74
cmp dword [esp + 0x30], edi
je 0x4cca74
mov ecx, dword [ebx + 0x190]
add ecx, esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x194]
add ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [ebx + 0x14c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
sub eax, edi
add eax, ecx
cmp dword [ebx + 0x16c], 0
je 0x4ccadb
sub eax, dword [esp + 0x4c]
jns 0x4ccadb
test ecx, ecx
je 0x4ccadb
mov ecx, dword [ebp + 8]
push ecx
push 1
lea edx, [esp + 0x3c]
push edx
mov ecx, ebx
mov dword [ebx + 0xcc], 1
call fcn.004ca0b0
mov edi, dword [esp + 0x34]
mov eax, dword [ebx + 0xc8]
mov ecx, dword [ebx + 0xb4]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
sub dword [esp + 0x3c], esi
cmp dword [ebx + 0x164], 1
jne 0x4ccaf4
mov edx, dword [ebx + 0x80]
mov dword [ebx + 0xc4], edx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
push eax
push ecx
mov ecx, ebx
call fcn.004be340
test esi, esi
mov dword [esp + 0x10], eax
je 0x4ccbd1
cmp dword [esp + 0x20], 0
je 0x4ccbd1
cmp dword [ebx + 0x164], 0
jne 0x4ccbd1
mov edx, dword [esp + 0x50]
mov esi, eax
mov eax, dword [esp + 0x4c]
add edx, esi
push edx
add eax, edi
push eax
push esi
push edi
mov ecx, ebx
call fcn.004caba0
cmp dword [ebx + 0xac], 0
je 0x4ccb63
mov ecx, dword [ebx + 0x17c]
cmp ecx, dword [ebx + 0x178]
jne 0x4ccb63
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
jmp 0x4ccb67
mov eax, dword [esp + 0x78]
cmp dword [ebx + 0x144], 0
jne 0x4ccb7c
and eax, 0xff00
or eax, 8
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx + 0x19c]
push edx
mov edx, dword [ebx + 0x198]
push ecx
mov ecx, dword [ebx + 0x194]
push edx
mov edx, dword [ebx + 0x190]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [ebx + 0x15c]
push eax
push ecx
push esi
push edi
push edx
lea ecx, [ebx + 0xd0]
call fcn.004d2f30
mov eax, dword [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
add edi, dword [esp + 0x4c]
jmp 0x4cd18b
cmp ecx, edi
mov dword [esp + 0x14], esi
je 0x4ccbec
push ecx
mov ecx, ebx
call fcn.004be130
jmp 0x4ccc23
cmp dword [edx - 0xc], edi
je 0x4ccbfb
push edx
mov ecx, ebx
call fcn.004be160
jmp 0x4ccc23
cmp eax, edi
je 0x4ccc11
mov ecx, dword [esp + 0x94]
push ecx
push eax
mov ecx, ebx
call fcn.004be180
jmp 0x4ccc23
mov eax, dword [esp + 0x60]
cmp eax, edi
je case.0x4cbf6a.9
xor edi, edi
mov dword [esp + 0x14], edi
cmp eax, edi
mov dword [esp + 0x10], eax
je case.0x4cbf6a.9
lea edx, [esp + 0x1c]
push edx
lea ecx, [ebx + 0xd0]
push eax
call fcn.004d0820
mov eax, dword [esp + 0x64]
test eax, eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x68]
jne 0x4ccc6c
test esi, esi
jne 0x4ccc66
cmp edx, ecx
mov esi, edx
jl 0x4ccc60
mov esi, ecx
mov dword [esp + 0x64], esi
jmp 0x4ccc72
mov dword [esp + 0x64], esi
jmp 0x4ccc76
test esi, esi
jne 0x4ccc76
mov esi, eax
mov dword [esp + 0x68], esi
cmp dword [esp + 0x84], 0
je 0x4ccc9a
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
push 0x64
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, eax
mov dword [esp + 0x6c], edi
jmp 0x4ccc9e
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x88], 0
mov eax, dword [esp + 0x70]
je 0x4cccba
push 0x64
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x70], eax
test edi, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], eax
je 0x4ccce9
test eax, eax
je 0x4ccce9
cmp dword [esp + 0x30], 0
je 0x4ccce9
mov ecx, dword [ebx + 0x190]
add ecx, edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x194]
add ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x64]
mov edi, eax
mov eax, dword [esp + 0x20]
cdq
idiv esi
mov esi, eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4ccd93
mov ecx, dword [ebx + 0x164]
cmp ecx, 1
jne 0x4ccd52
mov ecx, dword [esp + 0x54]
mov edx, esi
imul edx, edi
mov dword [esp + 0x100], eax
lea eax, [esp + 0xf4]
mov dword [esp + 0xf4], ecx
push eax
lea ecx, [ebx + 0x280]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], 0
call fcn.004c8bc0
jmp 0x4ccd93
test ecx, ecx
jne 0x4ccd93
add dword [ebx + 0x180], 1
mov eax, dword [ebx + 0x180]
push eax
lea ecx, [ebx + 0x280]
call fcn.004be4d0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0xf8], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], eax
mov dword [esp + 0x54], ecx
mov ecx, esi
imul ecx, edi
cmp dword [esp + 0x54], ecx
jge 0x4ccf3c
test edi, edi
je 0x4ccf3c
test esi, esi
je 0x4ccf3c
mov eax, dword [ebx + 0x14c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
sub eax, esi
add eax, ecx
cmp dword [ebx + 0x16c], 0
je 0x4cce15
sub eax, dword [esp + 0x4c]
jns 0x4cce15
test ecx, ecx
je 0x4cce15
mov edx, dword [ebp + 8]
push edx
push 1
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
mov dword [ebx + 0xcc], 1
call fcn.004ca0b0
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + 0xc8]
mov edx, dword [ebx + 0xb4]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x4c]
sub dword [esp + 0x3c], eax
cmp dword [ebx + 0x164], 1
jne 0x4cce32
mov ecx, dword [ebx + 0x80]
mov dword [ebx + 0xc4], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
push edx
push eax
mov ecx, ebx
call fcn.004be340
cmp dword [esp + 0x6c], 0
mov edi, eax
je 0x4ccf34
cmp dword [esp + 0x70], 0
je 0x4ccf34
cmp dword [ebx + 0x164], 0
jne 0x4ccf34
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add ecx, edi
push ecx
add edx, esi
push edx
push edi
push esi
mov ecx, ebx
call fcn.004caba0
cmp dword [ebx + 0xac], 0
je 0x4cce9e
mov eax, dword [ebx + 0x17c]
cmp eax, dword [ebx + 0x178]
jne 0x4cce9e
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
cmp dword [ebx + 0x144], 0
jne 0x4cceb8
mov edx, dword [esp + 0x78]
and edx, 0xff00
or edx, 8
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x48]
mov ecx, dword [ebx + 0x19c]
mov edx, dword [ebx + 0x198]
push eax
mov eax, dword [ebx + 0x194]
push ecx
mov ecx, dword [ebx + 0x190]
push edx
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
mov edx, dword [esp + 0x9c]
push eax
mov eax, dword [ebx + 0x15c]
push ecx
push edx
push edi
push esi
push eax
lea ecx, [ebx + 0xd0]
call fcn.004d3180
add esi, dword [esp + 0x4c]
mov dword [esp + 0x34], esi
cmp dword [esp + 0x14], 0
je case.0x4cbf6a.9
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp case.0x4cbf6a.9
lea ecx, [esp + 0x24]
xor esi, esi
call fcn.0041b500
mov edx, dword [esp + 0x18]
cmp dword [edx - 0xc], esi
jle case.0x4cbf6a.9
nop
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xbc]
push eax
mov ecx, ebx
call fcn.004c5050
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x194], 0x1b
call fcn.0041b3b0
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
mov byte [esp + 0x190], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ccfcb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 0xc], 0
je 0x4cd0af
lea edx, [esp + 0x28]
push str.idres
push edx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cd005
push 0
push esi
lea eax, [esp + 0x34]
push eax
mov ecx, ebx
call fcn.004c4740
mov esi, eax
jmp 0x4cd0af
lea ecx, [esp + 0x28]
push str.iddll
push ecx
call fcn.004019a0
add esp, 8
test al, al
je 0x4cd032
push 0
push 0
lea edx, [esp + 0x34]
push edx
mov ecx, ebx
call fcn.004c4740
mov esi, eax
jmp 0x4cd0af
lea eax, [esp + 0x28]
push str.srcdll
push eax
call fcn.004019a0
add esp, 8
test al, al
je 0x4cd0af
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041f220
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
mov byte [esp + 0x19c], 0x1c
call fcn.0041f220
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebx
mov byte [esp + 0x19c], 0x17
call fcn.004c1560
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x194], 0x1d
call fcn.0041b3b0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x190], 0x17
call fcn.00402880
mov edx, dword [esp + 0x18]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x10], eax
jl 0x4ccf70
test esi, esi
je case.0x4cbf6a.9
push esi
lea eax, [esp + 0xc0]
push eax
mov ecx, ebx
call fcn.004c3a90
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x194], 0x1e
call fcn.0041b3b0
lea ecx, [esp + 0xbc]
mov byte [esp + 0x190], 0x17
call fcn.00402880
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
test eax, eax
je case.0x4cbf6a.9
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [ebx + 0x15c]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [ebx + 0x164], 1
jne 0x4cd136
mov ecx, dword [ebx + 0x80]
mov dword [ebx + 0xc4], ecx
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
push edi
push edx
mov ecx, ebx
call fcn.004be290
cmp dword [ebx + 0x164], 0
mov esi, eax
jne 0x4cd183
mov eax, dword [esp + 0x1c]
add edi, esi
push edi
mov edi, dword [esp + 0x38]
add eax, edi
push eax
push esi
push edi
mov ecx, ebx
call fcn.004caba0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
push ecx
mov ecx, dword [ebx + 0x15c]
push eax
push esi
push edi
push ecx
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x4cd187
mov edi, dword [esp + 0x34]
add edi, dword [esp + 0x1c]
mov dword [esp + 0x34], edi
lea ecx, [esp + 0x10c]
call fcn.004bf490
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
mov byte [esp + 0x190], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cd1c6
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 0x4cd1e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
cmp dword [esp + 0x9c], eax
jl 0x4cb130
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0x34]
je 0x4cd227
mov ecx, dword [ebp + 8]
push ecx
push 1
lea edx, [esp + 0x3c]
push edx
mov ecx, ebx
mov dword [ebx + 0xcc], 0
call fcn.004ca0b0
mov eax, dword [ebx + 0x15c]
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_SetTextJustification]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x10]
sub eax, dword [ecx + 4]
mov edx, dword [ebp + 8]
mov dword [edx + 4], eax
mov eax, dword [esp + 0xc4]
cmp eax, dword [ebx + 0x170]
mov dword [esp + 0x9c], eax
jge 0x4cd30e
lea ecx, [eax*8]
sub ecx, eax
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x48], ecx
mov eax, dword [ebx + 0x254]
test eax, eax
je 0x4cd2a1
mov ecx, dword [ebx + 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 + 0x9c], eax
jb 0x4cd2a6
call fcn.004f2608
mov esi, dword [ebx + 0x254]
add esi, dword [esp + 0x48]
mov ecx, 7
lea edi, [ebx + 0xb4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x4cd2ec
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
push 0x64
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [ebx + 0xb4], eax
mov eax, dword [ebx + 0xb4]
mov ecx, dword [esi]
cmp ecx, eax
jle 0x4cd2ea
mov eax, ecx
mov dword [esi], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x48], 0x1c
add eax, 1
cmp eax, dword [ebx + 0x170]
mov dword [esp + 0x9c], eax
jl 0x4cd273
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x190], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cd336
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x190], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cd35e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x190], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cd386
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
mov byte [esp + 0x190], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cd3b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x190], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cd3dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80070057
call fcn.00402980
call fcn.0041b4a0
push 0x80004005
call fcn.00402980
movsb byte es:[edi], byte [esi]
mov eax, -1195114420
dec esp
add bl, bl
mov eax, 0xb8f2004c
dec esp
add byte [ecx], cl
mov ecx, 0xbee9004c
dec esp
add cl, ch
mov esi, 0xbee9004c
dec esp
add byte [edx], bh
mov ebx, 0xbb4c004c
dec esp
add byte [edx - 0x45], ah
dec esp
add byte [eax - 0x45], bh
dec esp
add byte [esi - 0x5bffb345], cl
mov ebx, 0xbbb6004c
dec esp
add ah, cl
mov ebx, 0xbee9004c
dec esp
add cl, ch
mov esi, 0xbee9004c
dec esp
add cl, ch
mov esi, 0xbbe2004c
dec esp
add dh, bh
mov ebx, 0xbd1d004c
dec esp
add byte [ecx - 0x41], dh
dec esp
add byte [esi + 0x34004cc1], bl
ret 0x4c