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

Disassembly:
sub esp, 0x364
push ebp
mov ebp, dword [esp + 0x36c]
push esi
push edi
mov esi, eax
push esi
call fcn.0050c7c0
test eax, eax
je 0x4ed495
mov ecx, dword [esi + 0x2e0]
lea eax, [esp + 0x88]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [0x58b2c8]
push 0
push edx
call fcn.00408290
push eax
push ebp
call fcn.004ab670
mov edi, eax
push edi
lea eax, [esp + 0x8c]
push eax
push ebp
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
pop edi
mov dword [esi + 0x204], 1
pop esi
pop ebp
add esp, 0x364
ret 8
cmp dword [esi + 0x34c], 1
mov edx, dword [esi + 0x2e0]
push ebx
lea ecx, [esp + 0x7c]
push ecx
push edx
jne 0x4ee42f
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esi + 0x350]
mov edi, dword [0x581df0]
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0x80]
mov edx, ecx
mov dword [esp + 0x44], eax
imul edx, edi
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x7c]
push ebp
mov dword [esp + 0x44], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea edx, [edi*4]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [ebx + eax*2]
mov ebx, dword [0x581dec]
imul ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
add edi, dword [esi + 0x360]
sar edx, 4
mov ecx, edx
add ebx, ebx
shr ecx, 0x1f
add ecx, edx
add ebx, ebx
mov eax, 0x2aaaaaab
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [ecx + eax*2]
call fcn.004eab10
cmp byte [esi + 0x180], 0
je 0x4ed570
mov ecx, dword [esi + 0x384]
push pe_nt_image_headers32
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [esp + 0x68], eax
cmp dword [esi + 0x34c], 1
push esi
jne 0x4ed58e
call fcn.004e9ea0
mov ebx, eax
imul ebx, dword [esi + 0x354]
mov dword [esp + 0x1c], ebx
jmp 0x4ed599
call fcn.004e9ea0
mov ebx, eax
mov dword [esp + 0x1c], eax
push esi
mov edi, 0x20
call fcn.004eaa00
cmp eax, 1
je 0x4ed5ae
mov edi, 0xa0
push 2
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed5bd
or edi, 1
push 5
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed5cc
or edi, 4
push 6
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed5db
or edi, 2
push 7
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed5ea
or edi, 8
push 8
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed5f9
or edi, 0x10
push 4
push esi
call fcn.004e8a40
test eax, eax
je 0x4ed608
or edi, 0x40
cmp byte [0x58b12f], 0
je 0x4ed614
or edi, 0x1f
call fcn.004eaf90
test eax, eax
je 0x4ed620
or edi, 0x1f
push edi
push ebx
push esi
call fcn.004ea2c0
push eax
push ebx
push esi
call fcn.0050c7e0
lea edx, [esp + 0x264]
xor edi, edi
push edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
call fcn.0051ec40
lea eax, [esp + 0x120]
push eax
call fcn.0051ec40
mov ecx, dword [0x58b2c8]
push edi
push ecx
call fcn.00408290
mov edi, dword [sym.imp.USER32.dll_GetFocus]
mov dword [esp + 0x34], eax
call edi
cmp eax, dword [esi + 0x2e0]
je 0x4ed688
cmp dword [esi + 0x154], 0
je 0x4ed693
call edi
cmp eax, dword [esi + 0x154]
jne 0x4ed693
mov edx, dword [0x58b2c8]
push 4
push edx
jmp 0x4ed69b
mov eax, dword [0x58b2c8]
push 6
push eax
call fcn.00408290
mov ebx, dword [esp + 0x34]
push ebx
push ebp
mov dword [esp + 0x34], eax
call fcn.004ab670
mov ecx, dword [esp + 0x2c]
push ecx
mov edi, eax
push ebp
mov dword [esp + 0x38], edi
call fcn.004ab670
mov dword [esp + 0x64], eax
mov eax, dword [0x581df0]
lea ecx, [eax + eax*2]
add ecx, ecx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
push edi
push ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [esp + 0x48]
push edx
push esi
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
neg eax
push eax
push 0
push ebp
push esi
xor eax, eax
xor edi, edi
call fcn.004e9c60
mov eax, dword [0x581df0]
lea ecx, [eax + eax*2]
add ecx, ecx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov edi, edx
shr edi, 0x1f
push 1
add edi, edx
push esi
mov dword [esp + 0x20], edi
call fcn.0050c6d0
mov dword [esp + 0x3c], eax
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [esi + 0x2e0]
jne 0x4ed748
push 2
push esi
call fcn.0050c6d0
mov eax, dword [esi + 0x360]
sub eax, dword [esi + 0x10c]
cdq
sub eax, edx
sar eax, 1
cmp edi, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
jge 0x4ee3a3
push esi
call fcn.0050c3b0
cmp dword [esp + 0x1c], eax
jge 0x4ee3a3
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov ecx, dword [0x581dec]
shl ecx, 4
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
mov ebx, dword [esi + 0x35c]
neg eax
push eax
push 0
push ebp
mov eax, edi
push esi
xor edi, edi
call fcn.004e9c60
mov ebx, dword [0x581dec]
mov ecx, ebx
shl ecx, 4
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x354]
test eax, eax
mov dword [esp + 0x60], eax
je 0x4ee284
mov ebp, dword [esp + 0x24]
jmp 0x4ed806
mov ebx, dword [0x581dec]
mov ecx, dword [esi + 0x350]
mov edx, ecx
imul ecx, ebx
imul edx, dword [0x581df0]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x581df0]
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [edi + eax*2]
add edx, dword [esi + 0x360]
mov eax, 0x2aaaaaab
push edx
lea edx, [ebx*4]
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x37c]
push ecx
push edx
push ebp
push eax
call fcn.004a9d60
test eax, eax
je 0x4ee1ac
push esi
call fcn.0050c3b0
cmp dword [esp + 0x1c], eax
jge 0x4ee284
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x24]
lea edx, [edi + ecx]
neg edx
push edx
mov edx, dword [esp + 0x380]
lea ecx, [ebx + eax]
neg ecx
push ecx
push edx
call dword [sym.imp.GDI32.dll_OffsetRgn]
mov eax, ebx
mov ebx, dword [esi + 0x384]
neg eax
push 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xb0]
push eax
neg edi
push 0
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x28]
push edi
push esi
call fcn.004ebef0
mov ecx, dword [esp + 0xb4]
push ecx
push ebx
call fcn.004ab670
mov edx, dword [esp + 0xd4]
push edx
push ebx
mov dword [esp + 0x54], eax
call fcn.004ab670
mov dword [esp + 0x70], eax
lea eax, [esp + 0xe8]
push eax
push 0xa0
push edi
push esi
call fcn.0050c820
push edi
push esi
call fcn.0050c490
push edi
push esi
call fcn.0050c920
mov ebp, dword [esi + 0x350]
mov ecx, ebp
imul ebp, dword [0x581dec]
imul ecx, dword [0x581df0]
mov edi, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x2aaaaaab
imul ebp
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x581df0]
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x581dec]
add edx, edx
mov dword [esp + 0x14], eax
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esi + 0x360]
add edx, ecx
push edx
mov edx, dword [esp + 0x1c]
push ebp
push edx
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x360]
lea edx, [eax + edx*2]
mov eax, dword [esp + 0x4c]
add edx, ecx
push edx
lea ecx, [ebp + eax*2]
push ecx
push 0
push 0
push ebx
call fcn.004a8530
cmp dword [esp + 0xbc], 0x18
jne 0x4edb7c
cmp byte [0x58b2d7], 0
je 0x4eda22
mov eax, dword [0x58b2d4]
movzx ecx, byte [0x58b2d6]
movzx edx, ah
mov dword [esp + 0x2c], edx
and eax, 0xff
jmp 0x4eda95
mov eax, dword [0x58b2c8]
push 4
push eax
call fcn.00408290
movzx ecx, byte [esp + 0xb4]
movzx eax, al
add eax, ecx
cdq
sub eax, edx
mov edx, dword [0x58b2c8]
push 4
sar eax, 1
push edx
mov dword [esp + 0x1c], eax
call fcn.00408290
movzx ecx, byte [esp + 0xb5]
movzx eax, ah
add eax, ecx
cdq
sub eax, edx
mov edx, dword [0x58b2c8]
push 4
sar eax, 1
push edx
mov dword [esp + 0x34], eax
call fcn.00408290
mov ecx, dword [esp + 0xb4]
shr eax, 0x10
shr ecx, 0x10
movzx eax, al
movzx edx, cl
mov cl, byte [esp + 0x14]
add eax, edx
cdq
sub eax, edx
sar eax, 1
xor edx, edx
mov dh, al
movzx eax, cl
mov dl, byte [esp + 0x2c]
shl edx, 8
or edx, eax
push edx
push ebx
call fcn.004ab670
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4edb7c
mov ebp, dword [0x581df0]
lea ecx, [ebp*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esi + 0x350]
imul edx, ebp
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x581dec]
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x350]
imul eax, dword [0x581dec]
mov edx, eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x2c]
push edx
mov edx, dword [esi + 0x360]
lea edx, [edx + ecx*2]
lea edx, [edx + ebp - 2]
push edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
lea eax, [eax + edx*2 - 2]
push eax
mov eax, dword [esi + 0x360]
push 1
push 1
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x28]
add ecx, ebp
push ecx
lea ecx, [eax + edx*2]
push ecx
push 0
push 0
push ebx
call fcn.004a8530
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
push 2
push esi
call fcn.0050c6d0
cmp eax, dword [esp + 0x1c]
jne 0x4edc40
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [esi + 0x2e0]
jne 0x4edc40
mov ecx, dword [esi + 0x350]
mov ebp, dword [0x581df0]
mov eax, dword [esp + 0xb4]
push eax
mov edx, ecx
imul edx, ebp
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
lea edx, [ebp*4]
mov ebp, dword [0x581dec]
mov eax, 0x2aaaaaab
imul ecx, ebp
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
lea edx, [edx + eax*2]
add edx, dword [esi + 0x360]
push 0
push 0
push edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x24], eax
lea ecx, [ebp*4]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x24]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [ecx + eax*2]
push ecx
push 0
push 0
push ebx
call fcn.004a6160
mov ecx, dword [esi + 0x350]
mov edx, ecx
imul ecx, dword [0x581dec]
imul edx, dword [0x581df0]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [0x581df0]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, ecx
add ecx, ecx
push ebp
push eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [0x581dec]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x20]
add ecx, ecx
push eax
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x384]
push ecx
push edx
call fcn.004a9d60
test eax, eax
je 0x4eddfa
mov eax, dword [esp + 0x114]
test eax, eax
mov ecx, dword [esi + 0x350]
mov ebp, dword [0x581dec]
je 0x4edd71
mov edx, dword [esp + 0xb4]
neg edi
sbb edi, edi
and edi, 0xffffff81
add edi, 0xff
push edi
mov edi, dword [0x581df0]
push edx
push eax
mov edx, ecx
imul ecx, ebp
imul edx, edi
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add edi, edi
add edi, edi
mov eax, 0x2aaaaaab
imul edi
sar edx, 4
mov eax, edx
push ecx
shr eax, 0x1f
add eax, edx
push eax
add ebp, ebp
add ebp, ebp
mov eax, 0x2aaaaaab
imul ebp
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push ebx
lea edx, [esi + 0x3b0]
push edx
call fcn.004ba290
jmp 0x4eddfa
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x110]
neg edi
sbb edi, edi
and edi, 0xffffff81
add edi, 0xff
push edi
mov edi, dword [0x581df0]
push eax
push edx
mov edx, ecx
imul ecx, ebp
imul edx, edi
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add edi, edi
add edi, edi
mov eax, 0x2aaaaaab
imul edi
sar edx, 4
mov eax, edx
push ecx
shr eax, 0x1f
add eax, edx
push eax
add ebp, ebp
add ebp, ebp
mov eax, 0x2aaaaaab
imul ebp
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push ebx
lea edx, [esi + 0x3b0]
push edx
call fcn.004bbc70
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x268]
push ecx
push edx
push esi
call fcn.0050c5d0
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x264]
mov edx, dword [esp + 0x26c]
push eax
push ecx
push edx
lea eax, [esp + 0xb8]
push eax
push ebx
call fcn.004aadf0
mov ecx, dword [esi + 0x350]
mov edi, dword [0x581dec]
mov edx, ecx
imul edx, edi
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
lea edx, [edi*4]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [esp + 0x38], ebp
jg 0x4ede93
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add edi, eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x3c]
mov dword [esp + 0x2c], edi
je 0x4edf19
imul ecx, dword [0x581df0]
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x128]
sar edx, 4
mov ecx, edx
push 0
push eax
mov eax, dword [esp + 0x274]
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x26c]
push edx
push eax
mov eax, dword [esp + 0x48]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esi + 0x360]
push edx
mov edx, dword [0x581df0]
push eax
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
push ebp
add eax, edx
add eax, ecx
push eax
push edi
push ebx
call fcn.004b0280
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 0x350]
mov ebp, dword [0x581df0]
mov edx, ecx
imul edx, ebp
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [ebp*4]
mov ebp, eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add ebp, edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esi + 0x360]
add ebp, eax
mov eax, dword [esp + 0x30]
push edx
sub eax, edi
push eax
push ebp
push edi
mov edi, dword [0x581dec]
imul ecx, edi
push edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea ecx, [edi*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
push ebp
add ecx, edx
push ecx
push ebx
call fcn.004a8530
mov eax, dword [esi + 0x308]
cmp eax, 1
je 0x4edfbc
cmp eax, 2
jne 0x4ee0f5
mov ecx, dword [esi + 0x350]
mov edi, dword [0x581dec]
mov edx, ecx
imul edx, edi
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
lea edx, [edi*4]
mov edi, dword [0x581df0]
mov eax, 0x2aaaaaab
imul ecx, edi
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
lea edx, [edx + eax*2]
mov dword [esp + 0xa4], edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
lea ecx, [edi*4]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [ecx + eax*2]
add ecx, dword [esi + 0x360]
lea edi, [esi + 0x210]
push edi
lea edx, [esp + 0x90]
xor ebp, ebp
push edx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xb0], ecx
call dword [sym.imp.USER32.dll_CopyRect]
push esi
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
add eax, dword [esp + 0x18]
neg eax
push eax
push esi
call fcn.004e9f20
mov ecx, dword [esp + 0x78]
sub ecx, eax
push ecx
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [esi + 0x220], ebp
je 0x4ee0d5
mov ecx, dword [esp + 0x37c]
push ecx
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x94]
push eax
push ebx
lea ecx, [esi + 0x398]
push ecx
call fcn.004ad8a0
jmp 0x4ee0f5
mov edx, dword [esi + 0x214]
mov eax, dword [edi]
push edx
push eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0x98]
push edx
push ebx
call fcn.004a6330
mov ecx, dword [esi + 0x350]
mov edi, dword [0x581df0]
mov eax, dword [esi + 0x384]
mov edx, ecx
imul edx, edi
push 0xcc0020
push 0
push 0
push eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add edi, edi
add edi, edi
mov eax, 0x2aaaaaab
imul edi
mov edi, dword [0x581dec]
sar edx, 4
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [ebx + eax*2]
add edx, dword [esi + 0x360]
mov eax, 0x2aaaaaab
push edx
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea ecx, [edi*4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x2c]
lea ecx, [ebx + eax*2]
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x390]
push edx
push eax
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [esp + 0x70]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push edx
call edi
mov eax, dword [esp + 0x4c]
push eax
call edi
mov ebp, dword [esp + 0x24]
mov ecx, dword [esi + 0x350]
mov edx, ecx
imul ecx, dword [0x581dec]
imul edx, dword [0x581df0]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [0x581dec]
sar edx, 4
mov edi, edx
add ecx, ecx
add ecx, ecx
shr edi, 0x1f
add edi, edx
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [0x581df0]
push eax
add edx, edx
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esi + 0x358]
sub edx, edi
add ecx, ecx
sub edx, ecx
push edx
lea ebx, [ebx + eax*2]
add ebx, dword [esi + 0x360]
add edi, ecx
push esi
add edi, ebp
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
neg eax
push eax
mov eax, dword [esp + 0x388]
push 0
push eax
mov eax, dword [esp + 0x30]
push esi
call fcn.004e9c60
mov eax, dword [esp + 0x60]
add ebp, dword [esi + 0x358]
add dword [esp + 0x1c], 1
sub eax, 1
test eax, eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x60], eax
jne 0x4ed800
mov edi, dword [0x581df0]
mov ecx, dword [esi + 0x350]
imul ecx, edi
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x30]
push edx
push eax
lea edx, [edi*4]
mov edi, dword [esp + 0x2c]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [ecx + eax*2]
mov ecx, dword [esp + 0x48]
add ebx, dword [esi + 0x360]
sub ecx, edi
push ecx
push esi
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
mov edx, dword [esp + 0x384]
mov ebp, dword [esp + 0x24]
neg eax
push eax
push 0
push edx
push esi
mov eax, ebp
call fcn.004e9c60
mov edi, dword [0x581df0]
mov ecx, dword [esi + 0x350]
imul ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ebx, dword [esi + 0x35c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [edi*4]
mov edi, dword [esp + 0x30]
mov eax, 0x2aaaaaab
imul edx
push edi
mov edi, dword [esp + 0x38]
sar edx, 4
push edi
mov edi, dword [esp + 0x48]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esi + 0x360]
push edi
add eax, eax
sub ebx, ecx
lea edi, [ecx + edx]
sub ebx, edx
add edi, eax
push esi
sub ebx, eax
add edi, ebp
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
neg eax
push eax
mov eax, dword [esp + 0x388]
push 0
push eax
mov eax, edi
push esi
xor edi, edi
call fcn.004e9c60
add ebp, dword [esi + 0x35c]
cmp ebp, dword [esp + 0x44]
mov dword [esp + 0x18], ebp
mov edi, ebp
mov ebp, dword [esp + 0x378]
jl 0x4ed767
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
push ecx
push edx
push eax
push esi
sub ebx, edi
call fcn.004e9ea0
imul eax, dword [esi + 0x35c]
neg eax
push eax
push 0
push ebp
mov eax, edi
push esi
xor edi, edi
call fcn.004e9c60
mov ecx, dword [esp + 0x64]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call edi
mov edx, dword [esp + 0x30]
push edx
call edi
lea eax, [esp + 0x120]
push eax
call fcn.00522920
lea ecx, [esp + 0x264]
push ecx
call fcn.00522920
cmp byte [esi + 0x180], 0
je 0x4ef502
mov edx, dword [esp + 0x68]
mov eax, dword [esi + 0x384]
push edx
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x364
ret 8
call dword [sym.imp.USER32.dll_GetClientRect]
push esi
call fcn.004e9f20
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x118]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
sub eax, ecx
sub eax, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
add eax, ecx
cmp byte [0x57e66f], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], ebp
je 0x4ee4bf
mov eax, dword [esp + 0x34]
mov edi, dword [esi + 0x360]
add eax, 0xf
cdq
and edx, 0xf
add eax, edx
mov ebx, eax
sar ebx, 4
shl ebx, 4
push ebp
call fcn.004eab10
mov eax, dword [esi + 0x118]
mov edi, dword [esp + 0x37c]
mov ebp, dword [esi + 0x384]
neg eax
push eax
push 0
push edi
call dword [sym.imp.GDI32.dll_OffsetRgn]
push edi
push ebp
call dword [sym.imp.GDI32.dll_SelectClipRgn]
push 0x2c
lea ecx, [esp + 0xb0]
push 0
push ecx
call fcn.00545659
add esp, 0xc
push esi
mov dword [esp + 0xb0], 9
call fcn.004e8bd0
xor ebx, ebx
test eax, eax
mov dword [esp + 0x30], eax
jle 0x4ee53b
mov edi, dword [0x58b054]
mov eax, dword [esi + 0x6c]
lea edx, [esp + 0xac]
push edx
push 0
push ebx
push 0x120f
push eax
call edi
mov ecx, dword [esi + 0x6c]
push eax
push 0x120b
push ecx
call edi
mov dl, byte [esp + 0xc4]
mov eax, dword [esp + 0xb0]
mov byte [esp + ebx + 0x9c], dl
mov dword [esp + ebx*4 + 0x230], eax
add ebx, 1
cmp ebx, dword [esp + 0x30]
jl 0x4ee4f4
cmp dword [esi + 0x34c], 1
push esi
jne 0x4ee559
call fcn.004e9ea0
mov ebx, eax
imul ebx, dword [esi + 0x354]
mov dword [esp + 0x10], ebx
jmp 0x4ee564
call fcn.004e9ea0
mov ebx, eax
mov dword [esp + 0x10], eax
cmp byte [esi + 0x180], 0
je 0x4ee580
push pe_nt_image_headers32
push ebp
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [esp + 0xdc], eax
lea ecx, [esp + 0x120]
push ecx
call fcn.0051ec40
lea edx, [esp + 0x264]
push edx
call fcn.0051ec40
mov eax, dword [0x58b2c8]
push 0
push eax
call fcn.00408290
mov ecx, dword [0x58b2c8]
push 0
push ecx
call fcn.00408290
push eax
push ebp
call fcn.004ab670
push 2
mov edi, 0x20
push esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0x50], edi
call fcn.004e8a40
test eax, eax
je 0x4ee5e1
mov edi, 0x21
mov dword [esp + 0x48], edi
push 5
push esi
call fcn.004e8a40
test eax, eax
je 0x4ee5f4
or edi, 4
mov dword [esp + 0x48], edi
push 6
push esi
call fcn.004e8a40
test eax, eax
je 0x4ee607
or edi, 2
mov dword [esp + 0x48], edi
push 7
push esi
call fcn.004e8a40
test eax, eax
je 0x4ee61a
or edi, 8
mov dword [esp + 0x48], edi
push 8
push esi
call fcn.004e8a40
test eax, eax
je 0x4ee62d
or edi, 0x10
mov dword [esp + 0x48], edi
push 4
push esi
call fcn.004e8a40
test eax, eax
je 0x4ee640
or edi, 0x40
mov dword [esp + 0x48], edi
cmp byte [0x58b12f], 0
je 0x4ee650
or edi, 0x1f
mov dword [esp + 0x48], edi
call fcn.004eaf90
test eax, eax
je 0x4ee660
or edi, 0x1f
mov dword [esp + 0x48], edi
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x360]
lea eax, [edx + ecx - 1]
cdq
idiv ecx
push edi
push eax
push ebx
push esi
call fcn.0050c7e0
mov ecx, dword [esi + 0x360]
mov eax, ecx
sub eax, dword [esi + 0x10c]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x6c], eax
mov eax, ecx
sub eax, dword [esi + 0x114]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x68], eax
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [esi + 0x2e0]
jne 0x4ee898
push 2
push esi
call fcn.0050c6d0
cmp eax, 0xffffffff
mov dword [esp + 0x58], eax
je 0x4ee76b
cmp byte [0x58b137], 0
je 0x4ee76b
lea eax, [esp + 0x8c]
push eax
push 0
push esi
call fcn.004e8900
push esi
call fcn.004e89e0
mov ecx, dword [0x581dec]
add ecx, ecx
mov dword [esp + 0x2c], eax
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, dword [esi + 0x110]
xor edi, edi
add ebx, dword [esp + 0x8c]
cmp dword [esp + 0x30], edi
mov dword [esp + 0x14], ebx
jle 0x4ee767
jmp 0x4ee730
mov al, byte [esp + edi + 0x9c]
test al, al
je 0x4ee75a
lea ecx, [esp + 0x8c]
movzx edx, al
push ecx
push edx
push esi
call fcn.004e8900
mov eax, dword [esp + 0x8c]
cmp eax, ebx
jge 0x4ee75a
mov ebx, eax
add edi, 1
cmp edi, dword [esp + 0x30]
jl 0x4ee730
mov dword [esp + 0x14], ebx
sub dword [esp + 0x2c], ebx
push 1
push esi
call fcn.0050c6d0
mov bl, byte [0x57e66f]
neg bl
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
sbb ebx, ebx
not ebx
and ebx, eax
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x1c], ebx
jge 0x4ef4aa
mov edi, eax
lea esp, [esp]
push esi
call fcn.0050c3b0
cmp dword [esp + 0x10], eax
jge 0x4ef313
mov eax, dword [esi + 0x360]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edi
push 0
push edx
call fcn.004a9d60
test eax, eax
je 0x4ef2b1
mov edi, dword [esp + 0x10]
push edi
push esi
call fcn.0050c490
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xe8]
push eax
push ecx
push edi
push esi
call fcn.0050c820
push esi
call fcn.004e9f20
mov edi, eax
neg edi
cmp dword [esp + 0x30], 0
mov dword [esp + 0x18], 0
jle 0x4ef124
mov edx, dword [esp + 0x18]
mov eax, dword [esp + edx*4 + 0x230]
mov edx, dword [esi + 0x360]
push edx
lea ecx, [eax + edi]
push eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
push eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x2c]
push edi
push ecx
mov dword [esp + 0x68], edi
call fcn.004a9d60
test eax, eax
je 0x4ef10b
lea edx, [esp + 0x120]
push edx
call fcn.0051f690
lea eax, [esp + 0x264]
push eax
call fcn.005229a0
mov ecx, dword [esp + 0x18]
movzx eax, byte [esp + ecx + 0x9c]
cmp eax, 0xc
mov dword [esp + 0x44], eax
ja case.default.0x4ee891
mov edx, eax
jmp dword [edx*4 + 0x4ef510]
mov dword [esp + 0x58], 0xffffffff
jmp 0x4ee76b
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x264]
push eax
lea ecx, [esp + 0x124]
push ecx
push edx
push esi
call fcn.0050c5d0
jmp case.default.0x4ee891
cmp byte [esi + 0x180], 0
je 0x4ee8d9
movsx eax, byte [0x57e675]
mov dword [esp + 0x70], eax
cmp byte [0x58b37c], 0
je 0x4ee8ed
movsx ecx, byte [0x57e674]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x264]
push edx
lea eax, [esp + 0x124]
push eax
push ecx
push esi
call fcn.0050c660
jmp case.default.0x4ee891
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x120]
push edx
push eax
push esi
call fcn.0050c960
jmp case.default.0x4ee891
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je case.default.0x4ee891
push ecx
push eax
movsx eax, byte [0x57e670]
push eax
lea ecx, [esp + 0x12c]
push ecx
call fcn.00521540
jmp case.default.0x4ee891
mov eax, dword [esp + 0x118]
test eax, eax
je case.default.0x4ee891
push eax
lea edx, [esp + 0x124]
push edx
call fcn.0051f570
jmp case.default.0x4ee891
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je case.default.0x4ee891
movsx edx, byte [esi + 0x180]
push edx
push ecx
push eax
lea eax, [esp + 0x12c]
push eax
jmp 0x4eea94
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je case.default.0x4ee891
movsx edx, byte [esi + 0x180]
push edx
push ecx
push eax
lea eax, [esp + 0x12c]
push eax
jmp 0x4eea94
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je case.default.0x4ee891
movsx edx, byte [esi + 0x180]
push edx
push ecx
push eax
lea eax, [esp + 0x12c]
push eax
jmp 0x4eea94
mov ecx, dword [esp + 0x108]
push ecx
lea edx, [esp + 0x124]
push edx
call fcn.0051fb30
jmp case.default.0x4ee891
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x120]
push eax
push ecx
push esi
call fcn.0050c980
jmp case.default.0x4ee891
mov edx, dword [esp + 0x10]
push edx
push esi
call fcn.0050c9a0
test eax, eax
je case.default.0x4ee891
push 0
push eax
lea eax, [esp + 0x128]
push eax
call fcn.00520440
jmp case.default.0x4ee891
mov ecx, dword [esp + 0x10]
push ecx
push esi
call fcn.0050c9e0
jmp 0x4eea79
mov eax, dword [esp + 0x10]
push eax
push esi
call fcn.0050c9c0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je case.default.0x4ee891
movsx ecx, byte [esi + 0x180]
push ecx
push edx
push eax
lea edx, [esp + 0x12c]
push edx
call fcn.00521140
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
push 0
lea eax, [esp + 0xb0]
push eax
push ecx
push edx
push esi
call fcn.004ebef0
mov eax, dword [esp + 0xb4]
push eax
push ebp
call fcn.004ab670
mov ecx, dword [esp + 0xd4]
push ecx
push ebp
mov dword [esp + 0x54], eax
call fcn.004ab670
mov edx, dword [esp + 0x26c]
mov ecx, dword [esp + 0x128]
push edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x124]
push eax
push ecx
lea edx, [esp + 0xb8]
push edx
push ebp
call fcn.004aadf0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
cmp byte [esp + eax + 0x9c], 0
jne 0x4eed1a
cmp dword [esp + 0x50], 0
mov ecx, dword [0x581dec]
je 0x4eeb92
lea edx, [ecx + ecx*2]
add edx, edx
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea edx, [ecx*4]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov ebx, eax
lea edx, [ecx + ecx]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
add ebx, edx
mov edx, dword [esp + 0x50]
shr eax, 0x1f
add eax, ebx
add eax, dword [esi + 0x110]
mov ebx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x44]
cmp edx, dword [esi + eax*4 + 0x224]
jle 0x4eeb92
mov dword [esi + eax*4 + 0x224], edx
mov ecx, dword [0x581dec]
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x360]
push eax
push edx
add ecx, ecx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
push edi
push ebp
call fcn.004a8460
mov ecx, dword [0x581dec]
add ecx, ecx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esi + 0x110]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x68]
add edi, ecx
lea ecx, [ebx + edx]
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esi + 0x114]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x360]
push edi
push ecx
push eax
push ebx
push edi
push ebp
call fcn.004a8530
mov edx, dword [esi + 0x114]
mov eax, dword [esi + 0x110]
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
add ecx, edx
push ecx
push edi
push eax
call fcn.004a9d60
test eax, eax
je 0x4eecb8
mov ecx, dword [esp + 0x10]
push ecx
push esi
call fcn.0050c920
cmp dword [esp + 0xe4], 0
mov dword [esp + 0x3c], eax
jne 0x4eec65
cmp dword [esi + 0x14c], 0
je 0x4eec61
push 5
push esi
call fcn.0050c6d0
cmp dword [esp + 0x10], eax
je 0x4eec65
xor ecx, ecx
jmp 0x4eec6a
mov ecx, 0x80
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0xb4]
neg eax
sbb eax, eax
and eax, 0xffffff81
add eax, 0xff
push eax
mov eax, dword [esp + 0xd8]
push ecx
mov ecx, dword [esp + 0x118]
push edx
mov edx, dword [esi + 0x114]
push eax
mov eax, dword [esi + 0x110]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [0x58b3d4]
push eax
lea eax, [ebx + ecx]
push eax
push edi
push ebp
push edx
call fcn.004b0910
add edi, dword [esi + 0x110]
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x10], eax
mov dword [esp + 0x3c], edi
je 0x4eecfa
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x360]
push ecx
mov ecx, dword [0x581dec]
push edx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
push edi
push ebp
call fcn.004a8460
mov ecx, dword [0x581dec]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add edi, ecx
jmp 0x4eeef3
cmp dword [esp + 0x50], 0
mov ebx, dword [0x581dec]
je 0x4eed7b
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x78], eax
lea ecx, [ebx + ebx*4]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x50]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
mov ecx, dword [esp + 0x44]
cmp eax, dword [esi + ecx*4 + 0x224]
jle 0x4eed7b
mov edx, ecx
mov dword [esi + edx*4 + 0x224], eax
mov ebx, dword [0x581dec]
cmp dword [esp + 0x70], 0
je 0x4eee68
cmp byte [esi + 0x180], 0
je 0x4eee68
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x124]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x270]
push edx
mov edx, dword [esp + 0x130]
push eax
push edx
mov edx, dword [esp + 0x60]
lea eax, [esp + 0xbc]
push eax
mov eax, dword [esp + 0x80]
push edx
mov edx, dword [esi + 0x360]
push eax
push edx
add ebx, ebx
mov eax, 0x2aaaaaab
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x44]
sub edx, eax
mov eax, dword [esp + 0x3c]
sub edx, ecx
sub edx, edi
push edx
push eax
add ecx, edi
push ecx
push ebp
call fcn.004b05c0
mov ebx, eax
mov eax, dword [esp + 0x50]
sub eax, ebx
test eax, eax
mov dword [esp + 0x60], eax
jle 0x4eee26
mov dword [esp + 0x60], 0
mov ecx, dword [0x581dec]
lea edx, [ecx + ecx]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x74]
sub eax, edx
sub eax, ebx
mov ebx, eax
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jge 0x4eeed4
mov ebx, eax
jmp 0x4eeed4
mov eax, dword [esp + 0x44]
push eax
push esi
call fcn.004e8c40
test eax, eax
je 0x4eeeb9
mov ecx, dword [0x581dec]
mov ebx, dword [esp + 0x74]
lea edx, [ecx + ecx*2]
mov eax, 0x2aaaaaab
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
sub ebx, dword [esp + 0x50]
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jge 0x4eeed4
mov ebx, eax
jmp 0x4eeed4
mov eax, dword [0x581dec]
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x360]
mov eax, dword [esp + 0x1c]
push ecx
push edx
push ebx
push eax
push edi
push ebp
call fcn.004a8460
add edi, ebx
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x360]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
sub edx, edi
push edx
push eax
push edi
push ecx
call fcn.004a9d60
test eax, eax
je 0x4eef9c
mov edx, dword [esp + 0x18]
cmp byte [esp + edx + 0x9c], 0
jne 0x4eef31
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x10], eax
je 0x4eef9c
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x26c]
mov eax, dword [esp + 0x120]
push ecx
mov ecx, dword [esp + 0x12c]
push edx
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x7c]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [esi + 0x360]
push eax
push ecx
mov ecx, dword [0x581dec]
push edx
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x80]
sub eax, ecx
sub eax, edi
add eax, dword [esp + 0x44]
push eax
push ebx
push edi
push ebp
call fcn.004b0280
mov edi, eax
mov edx, dword [esp + 0x18]
cmp byte [esp + edx + 0x9c], 0
jne 0x4ef074
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x10], eax
je 0x4ef074
mov ebx, dword [0x581dec]
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [ebx + ebx]
mov dword [esp + 0x78], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x3c]
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, eax
add ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
cmp ebx, eax
jle 0x4ef008
mov ebx, eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x360]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov eax, ebx
sub eax, edi
push eax
push ecx
push edi
push ebp
call fcn.004a8460
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x10], edx
mov edi, ebx
jne 0x4ef070
cmp byte [0x58b137], 0
jne 0x4ef07d
mov eax, dword [esp + 0x24]
cmp ebx, eax
jle 0x4ef044
mov ebx, eax
mov eax, dword [esi + 0x360]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
imul edx, eax
push ecx
mov ecx, dword [esp + 0x20]
push edx
push 0
push eax
mov eax, dword [esp + 0x4c]
sub ebx, eax
push ebx
push ecx
push eax
push ebp
call fcn.004a6160
mov ebx, dword [esp + 0x1c]
cmp byte [0x58b137], 0
je 0x4ef087
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
jmp 0x4ef08b
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 0x360]
mov ecx, dword [esp + 0x24]
push edx
push eax
sub ecx, edi
push ecx
push ebx
push edi
push ebp
call fcn.004a8460
mov edi, dword [esp + 0x10]
cmp edi, dword [esp + 0x58]
jne 0x4ef0f7
cmp byte [0x58b137], 0
je 0x4ef0f7
mov edx, dword [esp + 0xb4]
mov eax, dword [esi + 0x360]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x28]
push eax
sub edx, ecx
push edx
push ebx
push ecx
push eax
mov eax, dword [esp + 0x44]
push eax
push ebx
push esi
call fcn.004e9f20
mov edx, dword [esi + 0x360]
mov ecx, dword [esp + 0x34]
imul edx, edi
sub ecx, eax
push ecx
push edx
push 0
push ebp
call fcn.004a5f40
mov eax, dword [esp + 0x4c]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call edi
mov ecx, dword [esp + 0x38]
push ecx
call edi
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
add eax, 1
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jl 0x4ee814
cmp edi, dword [esp + 0x34]
jge 0x4ef175
mov eax, dword [esp + 0x10]
push 0
lea edx, [esp + 0xb0]
push edx
push 0xffffffffffffffff
push eax
push esi
call fcn.004ebef0
mov ecx, dword [esp + 0xd4]
push ecx
push ebp
call fcn.004ab670
mov edx, dword [esi + 0x360]
push eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
push edx
sub eax, edi
push eax
push ebx
push edi
push ebp
call fcn.004a8460
mov ecx, dword [esp + 0x54]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x308]
cmp eax, 1
je 0x4ef189
cmp eax, 2
jne 0x4ef27c
mov eax, dword [esi + 0x360]
mov edx, dword [esp + 0x34]
lea edi, [esi + 0x210]
push edi
lea ecx, [esp + 0x90]
add eax, ebx
push ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
call dword [sym.imp.USER32.dll_CopyRect]
cmp byte [0x57e66f], 0
push esi
je 0x4ef200
call fcn.004e9ea0
imul eax, dword [esi + 0x360]
mov edx, dword [esi + 0x118]
sub edx, eax
sub edx, dword [esp + 0x28]
push edx
push esi
call fcn.004e9f20
neg eax
push eax
lea eax, [esp + 0x94]
push eax
jmp 0x4ef226
call fcn.004e9ea0
imul eax, dword [esi + 0x360]
mov ecx, dword [esi + 0x118]
sub ecx, eax
push ecx
push esi
call fcn.004e9f20
neg eax
push eax
lea edx, [esp + 0x94]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [esi + 0x220], 0
je 0x4ef25c
mov eax, dword [esp + 0x37c]
push eax
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x94]
push edx
push ebp
lea eax, [esi + 0x398]
push eax
call fcn.004ad8a0
jmp 0x4ef27c
mov ecx, dword [esi + 0x214]
mov edx, dword [edi]
push ecx
push edx
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x98]
push ecx
push ebp
call fcn.004a6330
cmp byte [0x57e66f], 0
je 0x4ef2e7
mov edx, dword [esi + 0x360]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push 0xcc0020
push 0
push 0
push ebp
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push 0
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edi, dword [esp + 0x28]
cmp byte [0x57e66f], 0
je 0x4ef2e7
mov eax, dword [esi + 0x360]
neg eax
push eax
push 0
push ebp
call dword [sym.imp.GDI32.dll_OffsetClipRgn]
mov ecx, dword [esi + 0x360]
mov edx, dword [esp + 0x37c]
neg ecx
push ecx
push 0
push edx
call dword [sym.imp.GDI32.dll_OffsetRgn]
jmp 0x4ef2f5
add ebx, dword [esi + 0x360]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
add edi, dword [esi + 0x360]
add dword [esp + 0x10], 1
cmp edi, dword [esp + 0x40]
mov dword [esp + 0x28], edi
jl 0x4ee7a0
jmp 0x4ef4aa
cmp edi, dword [esp + 0x40]
jge 0x4ef4aa
lea ecx, [ecx]
push esi
call fcn.004e9f20
mov edi, eax
neg edi
push esi
mov dword [esp + 0x40], edi
call fcn.004e9ea0
mov ecx, eax
imul ecx, dword [esi + 0x360]
mov eax, dword [esi + 0x118]
xor ebx, ebx
sub eax, ecx
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
jle 0x4ef40e
lea esp, [esp]
mov edx, dword [esi + 0x360]
mov eax, dword [esp + ebx*4 + 0x230]
mov ecx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
push edi
push ecx
call fcn.004a9d60
test eax, eax
je 0x4ef3f6
mov ebx, dword [esp + 0x18]
movzx eax, byte [esp + ebx + 0x9c]
mov ecx, dword [esp + 0x10]
push 0
lea edx, [esp + 0xb0]
push edx
push eax
push ecx
push esi
call fcn.004ebef0
mov edx, dword [esp + 0xd4]
push edx
push ebp
call fcn.004ab670
mov ebx, dword [esp + ebx*4 + 0x230]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
push eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
push eax
mov eax, dword [esp + 0x28]
push ebx
mov ebx, dword [esi + 0x360]
push ecx
push edx
push eax
mov eax, dword [esp + 0x40]
push esi
call fcn.004e9c60
mov ecx, dword [esp + 0x54]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, dword [esp + 0x18]
add edi, dword [esp + ebx*4 + 0x230]
add ebx, 1
cmp ebx, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
jl 0x4ef360
mov edx, dword [esi + 0x360]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push edx
sub ebx, edi
push ebx
push eax
push edi
push ecx
call fcn.004a9d60
test eax, eax
je 0x4ef48d
mov eax, dword [esp + 0x10]
push 0
lea edx, [esp + 0xb0]
push edx
push 0xffffffffffffffff
push eax
push esi
call fcn.004ebef0
mov ecx, dword [esp + 0xd4]
push ecx
push ebp
call fcn.004ab670
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0x3c]
push eax
push edx
mov edx, dword [esp + 0x28]
push ebx
mov ebx, dword [esi + 0x360]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push esi
call fcn.004e9c60
mov eax, dword [esp + 0x54]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x28]
add eax, dword [esi + 0x360]
add dword [esp + 0x10], 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
jl 0x4ef320
cmp byte [esi + 0x180], 0
je 0x4ef4c2
mov ecx, dword [esp + 0xdc]
push ecx
push ebp
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [esp + 0xe0]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x264]
push eax
call fcn.00522920
lea ecx, [esp + 0x120]
push ecx
call fcn.00522920
cmp byte [0x57e66f], 0
je 0x4ef502
mov edx, dword [esi + 0x384]
push 0
push edx
call dword [sym.imp.GDI32.dll_SelectClipRgn]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x364
ret 8